From 7d764422df19fe6848fac51fa48373385668c4e3 Mon Sep 17 00:00:00 2001 From: Michael R Sweet Date: Fri, 27 May 2022 13:53:02 -0400 Subject: [PATCH 01/15] Save work on new ippFile API. --- cups/Makefile | 1 - cups/ipp-file.c | 526 +++++++++++++++++++++++- cups/ipp-private.h | 37 -- cups/ipp-vars.c | 263 ------------ cups/ipp.c | 4 +- cups/ipp.h | 41 +- xcode/libcups.xcodeproj/project.pbxproj | 6 - 7 files changed, 548 insertions(+), 330 deletions(-) delete mode 100644 cups/ipp-vars.c diff --git a/cups/Makefile b/cups/Makefile index d097a9450..1df149364 100644 --- a/cups/Makefile +++ b/cups/Makefile @@ -34,7 +34,6 @@ LIBOBJS = \ http-support.o \ ipp.o \ ipp-file.o \ - ipp-vars.o \ ipp-support.o \ langprintf.o \ language.o \ diff --git a/cups/ipp-file.c b/cups/ipp-file.c index bf17bbe19..e9b55a1e4 100644 --- a/cups/ipp-file.c +++ b/cups/ipp-file.c @@ -1,32 +1,256 @@ -/* - * IPP data file parsing functions. - * - * Copyright © 2021 by OpenPrinting. - * Copyright © 2007-2019 by Apple Inc. - * Copyright © 1997-2007 by Easy Software Products. - * - * Licensed under Apache License v2.0. See the file "LICENSE" for more - * information. - */ - -/* - * Include necessary headers... - */ - -#include "ipp-private.h" +// +// IPP data file functions. +// +// Copyright © 2021-2022 by OpenPrinting. +// Copyright © 2007-2019 by Apple Inc. +// Copyright © 1997-2007 by Easy Software Products. +// +// Licensed under Apache License v2.0. See the file "LICENSE" for more +// information. +// + +#include "cups.h" #include "string-private.h" #include "debug-internal.h" -/* - * Local functions... - */ +// +// Private structures... +// +struct _ipp_file_s // IPP data file +{ + cups_file_t *fp; // File pointer + const char *filename; // Filename + int linenum; // Current line number + ipp_tag_t group_tag; // Current group for attributes + ipp_t *attrs; // Current attributes + size_t num_vars; // Number of variables + cups_option_t *vars; // Variables + ipp_fattr_cb_t attr_cb; // Attribute (filter) callback + ipp_ferror_cb_t error_cb; // Error reporting callback + ipp_ftoken_cb_t token_cb; // Token processing callback + void *cb_data; // Callback data + char *buffer; // Output buffer + size_t alloc_buffer; // Size of output buffer +}; + + +// +// Local functions... +// + +static bool expand_buffer(ipp_file_t *file, size_t buffer_size); +#if 0 static ipp_t *parse_collection(_ipp_file_t *f, _ipp_vars_t *v, void *user_data); static int parse_value(_ipp_file_t *f, _ipp_vars_t *v, void *user_data, ipp_t *ipp, ipp_attribute_t **attr, size_t element); static void report_error(_ipp_file_t *f, _ipp_vars_t *v, void *user_data, const char *message, ...) _CUPS_FORMAT(4, 5); +#endif // 0 + + +// +// 'ippFileClose()' - Close an IPP data file. +// +// This function closes an IPP data file and frees all memory associated with +// it. +// + +bool // O - `true` on success, `false` on error +ippFileClose(ipp_file_t *file) // I - IPP data file +{ +} + + +// +// 'ippFileGetAttributes()' - Get the current set of attributes from an IPP data file. +// +// This function gets the current set of attributes from an IPP data file and +// clears the internal attribute pointer. The caller must call the +// @link ippDelete@ function to free the memory used by the attributes. +// + +ipp_t * // O - IPP attributes +ippFileGetAttributes(ipp_file_t *file) // I - IPP data file +{ +} + + +// +// 'ippFileGetFilename()' - . +// + +const char * +ippFileGetFilename(ipp_file_t *file) +{ +} + + +// +// 'ippFileGetLineNumber()' - . +// + +int +ippFileGetLineNumber(ipp_file_t *file) +{ +} + + +// +// 'ippFileGetVar()' - . +// + +const char * +ippFileGetVar(ipp_file_t *file, const char *name) +{ +} + + +// +// 'ippFileOpen()' - . +// + +ipp_file_t * +ippFileOpen(const char *filename, const char *mode, ipp_file_t *parent, ipp_fattr_cb_t attr_cb, ipp_ferror_cb_t error_cb, void *cb_data) +{ +} + + +// +// 'ippFileRead()' - . +// + +bool // O - `true` on success, `false` on error +ippFileRead(ipp_file_t *file, ipp_ftoken_cb_t token_cb) +{ +} + + +// +// 'ippFileReadToken()' - . +// + +bool // O - `true` on success, `false` on error +ippFileReadToken(ipp_file_t *file, char *buffer, size_t bufsize) +{ +} +// +// 'ippFileSetVar()' - Set an IPP data file variable to a constant value. +// +// This function sets an IPP data file variable to a constant value. Setting +// the "uri" variable also initializes the "scheme", "uriuser", "hostname", +// "port", and "resource" variables. +// + +void +ippFileSetVar(ipp_file_t *file, // I - IPP data file + const char *name, // I - Variable name + const char *value) // I - Value +{ +} + + +// +// 'ippFileSetVarf()' - Set an IPP data file variable to a formatted value. +// +// This function sets an IPP data file variable to a formatted value. Setting +// the "uri" variable also initializes the "scheme", "uriuser", "hostname", +// "port", and "resource" variables. +// + +void +ippFileSetVarf(ipp_file_t *file, // I - IPP data file + const char *name, // I - Variable name + const char *value, // I - Printf-style value + ...) // I - Additional arguments as needed +{ +} + + +// +// 'ippFileWriteAttributes()' - . +// + +bool // O - `true` on success, `false` on error +ippFileWriteAttributes( + ipp_file_t *file, // I - IPP data file + ipp_t *ipp) // I - IPP attributes to write +{ +} + + +// +// 'ippFileWriteComment()' - . +// + +bool // O - `true` on success, `false` on error +ippFileWriteComment(ipp_file_t *file, // I - IPP data file + const char *comment,// I - Printf-style comment string + ...) // I - Additional arguments as needed +{ +} + + +// +// 'ippFileWriteToken()' - . +// + +bool // O - `true` on success, `false` on error +ippFileWriteToken(ipp_file_t *file, // I - IPP data file + const char *token) // I - Token/value string +{ +} + + +// +// 'ippFileWriteTokenf()' - . +// + +bool // O - `true` on success, `false` on error +ippFileWriteTokenf(ipp_file_t *file, // I - IPP data file + const char *token, // I - Printf-style token/value string + ...) // I - Additional arguments as needed +{ + va_list ap; // Pointer to arguments + + + // Range check input... + if (!file || !token) + return (false); + + // +} + + +// +// 'expand_buffer()' - Expand the output buffer of the IPP data file as needed. +// + +static bool // O - `true` on success, `false` on failure +expand_buffer(ipp_file_t *file, // I - IPP data file + size_t buffer_size) // I - Required size +{ + char *buffer; // New buffer pointer + + + // If we already have enough, return right away... + if (buffer_size <= file->alloc_buffer) + return (true); + + // Try allocating/expanding the current buffer... + if ((buffer = realloc(file->buffer, buffer_size)) == NULL) + return (false); + + // Save new buffer and size... + file->buffer = buffer; + file->alloc_buffer = buffer_size; + + return (true); +} + + +#if 0 /* * '_ippFileParse()' - Parse an IPP data file. */ @@ -832,3 +1056,267 @@ report_error( else fprintf(stderr, "%s\n", buffer); } +/* + * IPP data file parsing functions. + * + * Copyright © 2022 by OpenPrinting. + * Copyright © 2007-2019 by Apple Inc. + * Copyright © 1997-2007 by Easy Software Products. + * + * Licensed under Apache License v2.0. See the file "LICENSE" for more + * information. + */ + +/* + * Include necessary headers... + */ + +#include "cups-private.h" +#include "ipp-private.h" +#include "string-private.h" +#include "debug-internal.h" + + +/* + * '_ippVarsDeinit()' - Free all memory associated with the IPP variables. + */ + +void +_ippVarsDeinit(_ipp_vars_t *v) /* I - IPP variables */ +{ + if (v->uri) + { + free(v->uri); + v->uri = NULL; + } + + cupsFreeOptions(v->num_vars, v->vars); + v->num_vars = 0; + v->vars = NULL; +} + + +/* + * '_ippVarsExpand()' - Expand variables in the source string. + */ + +void +_ippVarsExpand(_ipp_vars_t *v, /* I - IPP variables */ + char *dst, /* I - Destination buffer */ + const char *src, /* I - Source string */ + size_t dstsize) /* I - Destination buffer size */ +{ + char *dstptr, /* Pointer into destination */ + *dstend, /* End of destination */ + temp[256], /* Temporary string */ + *tempptr; /* Pointer into temporary string */ + const char *value; /* Value to substitute */ + + + dstptr = dst; + dstend = dst + dstsize - 1; + + while (*src && dstptr < dstend) + { + if (*src == '$') + { + /* + * Substitute a string/number... + */ + + if (!strncmp(src, "$$", 2)) + { + value = "$"; + src += 2; + } + else if (!strncmp(src, "$ENV[", 5)) + { + cupsCopyString(temp, src + 5, sizeof(temp)); + + for (tempptr = temp; *tempptr; tempptr ++) + if (*tempptr == ']') + break; + + if (*tempptr) + *tempptr++ = '\0'; + + value = getenv(temp); + src += tempptr - temp + 5; + } + else + { + if (src[1] == '{') + { + src += 2; + cupsCopyString(temp, src, sizeof(temp)); + if ((tempptr = strchr(temp, '}')) != NULL) + *tempptr = '\0'; + else + tempptr = temp + strlen(temp); + } + else + { + cupsCopyString(temp, src + 1, sizeof(temp)); + + for (tempptr = temp; *tempptr; tempptr ++) + if (!isalnum(*tempptr & 255) && *tempptr != '-' && *tempptr != '_') + break; + + if (*tempptr) + *tempptr = '\0'; + } + + value = _ippVarsGet(v, temp); + + src += tempptr - temp + 1; + } + + if (value) + { + cupsCopyString(dstptr, value, (size_t)(dstend - dstptr + 1)); + dstptr += strlen(dstptr); + } + } + else + *dstptr++ = *src++; + } + + *dstptr = '\0'; +} + + +/* + * '_ippVarsGet()' - Get a variable string. + */ + +const char * /* O - Value or @code NULL@ if not set */ +_ippVarsGet(_ipp_vars_t *v, /* I - IPP variables */ + const char *name) /* I - Variable name */ +{ + if (!v) + return (NULL); + else if (!strcmp(name, "uri")) + return (v->uri); + else if (!strcmp(name, "uriuser") || !strcmp(name, "username")) + return (v->username[0] ? v->username : NULL); + else if (!strcmp(name, "scheme") || !strcmp(name, "method")) + return (v->scheme); + else if (!strcmp(name, "hostname")) + return (v->host); + else if (!strcmp(name, "port")) + return (v->portstr); + else if (!strcmp(name, "resource")) + return (v->resource); + else if (!strcmp(name, "user")) + return (cupsGetUser()); + else + return (cupsGetOption(name, v->num_vars, v->vars)); +} + + +/* + * '_ippVarsInit()' - Initialize . + */ + +void +_ippVarsInit(_ipp_vars_t *v, /* I - IPP variables */ + _ipp_fattr_cb_t attrcb, /* I - Attribute (filter) callback */ + _ipp_ferror_cb_t errorcb, /* I - Error callback */ + _ipp_ftoken_cb_t tokencb) /* I - Token callback */ +{ + memset(v, 0, sizeof(_ipp_vars_t)); + + v->attrcb = attrcb; + v->errorcb = errorcb; + v->tokencb = tokencb; +} + + +/* + * '_ippVarsPasswordCB()' - Password callback using the IPP variables. + */ + +const char * /* O - Password string or @code NULL@ */ +_ippVarsPasswordCB( + const char *prompt, /* I - Prompt string (not used) */ + http_t *http, /* I - HTTP connection (not used) */ + const char *method, /* I - HTTP method (not used) */ + const char *resource, /* I - Resource path (not used) */ + void *user_data) /* I - IPP variables */ +{ + _ipp_vars_t *v = (_ipp_vars_t *)user_data; + /* I - IPP variables */ + + + (void)prompt; + (void)http; + (void)method; + (void)resource; + + if (v->username[0] && v->password && v->password_tries < 3) + { + v->password_tries ++; + + cupsSetUser(v->username); + + return (v->password); + } + else + { + return (NULL); + } +} + + +/* + * '_ippVarsSet()' - Set an IPP variable. + */ + +int /* O - 1 on success, 0 on failure */ +_ippVarsSet(_ipp_vars_t *v, /* I - IPP variables */ + const char *name, /* I - Variable name */ + const char *value) /* I - Variable value */ +{ + if (!strcmp(name, "uri")) + { + char uri[1024]; /* New printer URI */ + char resolved[1024]; /* Resolved mDNS URI */ + + if (strstr(value, "._tcp")) + { + /* + * Resolve URI... + */ + + if (!_httpResolveURI(value, resolved, sizeof(resolved), _HTTP_RESOLVE_DEFAULT, NULL, NULL)) + return (0); + + value = resolved; + } + + if (httpSeparateURI(HTTP_URI_CODING_ALL, value, v->scheme, sizeof(v->scheme), v->username, sizeof(v->username), v->host, sizeof(v->host), &(v->port), v->resource, sizeof(v->resource)) < HTTP_URI_STATUS_OK) + return (0); + + if (v->username[0]) + { + if ((v->password = strchr(v->username, ':')) != NULL) + *(v->password)++ = '\0'; + } + + snprintf(v->portstr, sizeof(v->portstr), "%d", v->port); + + if (v->uri) + free(v->uri); + + httpAssembleURI(HTTP_URI_CODING_ALL, uri, sizeof(uri), v->scheme, NULL, v->host, v->port, v->resource); + v->uri = strdup(uri); + + return (v->uri != NULL); + } + else + { + v->num_vars = cupsAddOption(name, value, v->num_vars, &v->vars); + return (1); + } +} +#endif // 0 diff --git a/cups/ipp-private.h b/cups/ipp-private.h index 51e620e68..80f039b75 100644 --- a/cups/ipp-private.h +++ b/cups/ipp-private.h @@ -132,43 +132,6 @@ typedef struct _ipp_option_s /**** Attribute mapping data ****/ const ipp_op_t *operations; /* Allowed operations for this attr */ } _ipp_option_t; -typedef struct _ipp_file_s _ipp_file_t;/**** File Parser ****/ -typedef struct _ipp_vars_s _ipp_vars_t;/**** Variables ****/ - -typedef int (*_ipp_fattr_cb_t)(_ipp_file_t *f, void *user_data, const char *attr); - /**** File Attribute (Filter) Callback ****/ -typedef int (*_ipp_ferror_cb_t)(_ipp_file_t *f, void *user_data, const char *error); - /**** File Parser Error Callback ****/ -typedef int (*_ipp_ftoken_cb_t)(_ipp_file_t *f, _ipp_vars_t *v, void *user_data, const char *token); - /**** File Parser Token Callback ****/ - -struct _ipp_vars_s /**** Variables ****/ -{ - char *uri, /* URI for printer */ - scheme[64], /* Scheme from URI */ - username[256], /* Username from URI */ - *password, /* Password from URI (if any) */ - host[256], /* Hostname from URI */ - portstr[32], /* Port number string */ - resource[1024]; /* Resource path from URI */ - int port; /* Port number from URI */ - size_t num_vars; /* Number of variables */ - cups_option_t *vars; /* Array of variables */ - int password_tries; /* Number of retries for password */ - _ipp_fattr_cb_t attrcb; /* Attribute (filter) callback */ - _ipp_ferror_cb_t errorcb; /* Error callback */ - _ipp_ftoken_cb_t tokencb; /* Token callback */ -}; - -struct _ipp_file_s /**** File Parser */ -{ - const char *filename; /* Filename */ - cups_file_t *fp; /* File pointer */ - int linenum; /* Current line number */ - ipp_t *attrs; /* Attributes */ - ipp_tag_t group_tag; /* Current group for new attributes */ -}; - /* * Prototypes for private functions... diff --git a/cups/ipp-vars.c b/cups/ipp-vars.c deleted file mode 100644 index 3af6a0247..000000000 --- a/cups/ipp-vars.c +++ /dev/null @@ -1,263 +0,0 @@ -/* - * IPP data file parsing functions. - * - * Copyright © 2022 by OpenPrinting. - * Copyright © 2007-2019 by Apple Inc. - * Copyright © 1997-2007 by Easy Software Products. - * - * Licensed under Apache License v2.0. See the file "LICENSE" for more - * information. - */ - -/* - * Include necessary headers... - */ - -#include "cups-private.h" -#include "ipp-private.h" -#include "string-private.h" -#include "debug-internal.h" - - -/* - * '_ippVarsDeinit()' - Free all memory associated with the IPP variables. - */ - -void -_ippVarsDeinit(_ipp_vars_t *v) /* I - IPP variables */ -{ - if (v->uri) - { - free(v->uri); - v->uri = NULL; - } - - cupsFreeOptions(v->num_vars, v->vars); - v->num_vars = 0; - v->vars = NULL; -} - - -/* - * '_ippVarsExpand()' - Expand variables in the source string. - */ - -void -_ippVarsExpand(_ipp_vars_t *v, /* I - IPP variables */ - char *dst, /* I - Destination buffer */ - const char *src, /* I - Source string */ - size_t dstsize) /* I - Destination buffer size */ -{ - char *dstptr, /* Pointer into destination */ - *dstend, /* End of destination */ - temp[256], /* Temporary string */ - *tempptr; /* Pointer into temporary string */ - const char *value; /* Value to substitute */ - - - dstptr = dst; - dstend = dst + dstsize - 1; - - while (*src && dstptr < dstend) - { - if (*src == '$') - { - /* - * Substitute a string/number... - */ - - if (!strncmp(src, "$$", 2)) - { - value = "$"; - src += 2; - } - else if (!strncmp(src, "$ENV[", 5)) - { - cupsCopyString(temp, src + 5, sizeof(temp)); - - for (tempptr = temp; *tempptr; tempptr ++) - if (*tempptr == ']') - break; - - if (*tempptr) - *tempptr++ = '\0'; - - value = getenv(temp); - src += tempptr - temp + 5; - } - else - { - if (src[1] == '{') - { - src += 2; - cupsCopyString(temp, src, sizeof(temp)); - if ((tempptr = strchr(temp, '}')) != NULL) - *tempptr = '\0'; - else - tempptr = temp + strlen(temp); - } - else - { - cupsCopyString(temp, src + 1, sizeof(temp)); - - for (tempptr = temp; *tempptr; tempptr ++) - if (!isalnum(*tempptr & 255) && *tempptr != '-' && *tempptr != '_') - break; - - if (*tempptr) - *tempptr = '\0'; - } - - value = _ippVarsGet(v, temp); - - src += tempptr - temp + 1; - } - - if (value) - { - cupsCopyString(dstptr, value, (size_t)(dstend - dstptr + 1)); - dstptr += strlen(dstptr); - } - } - else - *dstptr++ = *src++; - } - - *dstptr = '\0'; -} - - -/* - * '_ippVarsGet()' - Get a variable string. - */ - -const char * /* O - Value or @code NULL@ if not set */ -_ippVarsGet(_ipp_vars_t *v, /* I - IPP variables */ - const char *name) /* I - Variable name */ -{ - if (!v) - return (NULL); - else if (!strcmp(name, "uri")) - return (v->uri); - else if (!strcmp(name, "uriuser") || !strcmp(name, "username")) - return (v->username[0] ? v->username : NULL); - else if (!strcmp(name, "scheme") || !strcmp(name, "method")) - return (v->scheme); - else if (!strcmp(name, "hostname")) - return (v->host); - else if (!strcmp(name, "port")) - return (v->portstr); - else if (!strcmp(name, "resource")) - return (v->resource); - else if (!strcmp(name, "user")) - return (cupsGetUser()); - else - return (cupsGetOption(name, v->num_vars, v->vars)); -} - - -/* - * '_ippVarsInit()' - Initialize . - */ - -void -_ippVarsInit(_ipp_vars_t *v, /* I - IPP variables */ - _ipp_fattr_cb_t attrcb, /* I - Attribute (filter) callback */ - _ipp_ferror_cb_t errorcb, /* I - Error callback */ - _ipp_ftoken_cb_t tokencb) /* I - Token callback */ -{ - memset(v, 0, sizeof(_ipp_vars_t)); - - v->attrcb = attrcb; - v->errorcb = errorcb; - v->tokencb = tokencb; -} - - -/* - * '_ippVarsPasswordCB()' - Password callback using the IPP variables. - */ - -const char * /* O - Password string or @code NULL@ */ -_ippVarsPasswordCB( - const char *prompt, /* I - Prompt string (not used) */ - http_t *http, /* I - HTTP connection (not used) */ - const char *method, /* I - HTTP method (not used) */ - const char *resource, /* I - Resource path (not used) */ - void *user_data) /* I - IPP variables */ -{ - _ipp_vars_t *v = (_ipp_vars_t *)user_data; - /* I - IPP variables */ - - - (void)prompt; - (void)http; - (void)method; - (void)resource; - - if (v->username[0] && v->password && v->password_tries < 3) - { - v->password_tries ++; - - cupsSetUser(v->username); - - return (v->password); - } - else - { - return (NULL); - } -} - - -/* - * '_ippVarsSet()' - Set an IPP variable. - */ - -int /* O - 1 on success, 0 on failure */ -_ippVarsSet(_ipp_vars_t *v, /* I - IPP variables */ - const char *name, /* I - Variable name */ - const char *value) /* I - Variable value */ -{ - if (!strcmp(name, "uri")) - { - char uri[1024]; /* New printer URI */ - char resolved[1024]; /* Resolved mDNS URI */ - - if (strstr(value, "._tcp")) - { - /* - * Resolve URI... - */ - - if (!_httpResolveURI(value, resolved, sizeof(resolved), _HTTP_RESOLVE_DEFAULT, NULL, NULL)) - return (0); - - value = resolved; - } - - if (httpSeparateURI(HTTP_URI_CODING_ALL, value, v->scheme, sizeof(v->scheme), v->username, sizeof(v->username), v->host, sizeof(v->host), &(v->port), v->resource, sizeof(v->resource)) < HTTP_URI_STATUS_OK) - return (0); - - if (v->username[0]) - { - if ((v->password = strchr(v->username, ':')) != NULL) - *(v->password)++ = '\0'; - } - - snprintf(v->portstr, sizeof(v->portstr), "%d", v->port); - - if (v->uri) - free(v->uri); - - httpAssembleURI(HTTP_URI_CODING_ALL, uri, sizeof(uri), v->scheme, NULL, v->host, v->port, v->resource); - v->uri = strdup(uri); - - return (v->uri != NULL); - } - else - { - v->num_vars = cupsAddOption(name, value, v->num_vars, &v->vars); - return (1); - } -} diff --git a/cups/ipp.c b/cups/ipp.c index bf0f3bfa0..f6f6a4bec 100644 --- a/cups/ipp.c +++ b/cups/ipp.c @@ -1603,8 +1603,8 @@ ippCopyAttribute( * original source IPP message will not be freed for the life of the destination. * * The @code cb@ and @code context@ parameters provide a generic way to "filter" the - * attributes that are copied - the function must return 1 to copy the attribute or - * 0 to skip it. The function may also choose to do a partial copy of the source attribute + * attributes that are copied - the function must return `true` to copy the attribute or + * `false` to skip it. The function may also choose to do a partial copy of the source attribute * itself. * * @since CUPS 1.6/macOS 10.8@ diff --git a/cups/ipp.h b/cups/ipp.h index 4b116283d..bbe275114 100644 --- a/cups/ipp.h +++ b/cups/ipp.h @@ -516,11 +516,19 @@ typedef struct _ipp_s ipp_t; /**** IPP request/response data ****/ typedef struct _ipp_attribute_s ipp_attribute_t; /**** IPP attribute ****/ +typedef struct _ipp_file_s ipp_file_t; // IPP data file +typedef bool (*ipp_fattr_cb_t)(ipp_file_t *file, void *cb_data, const char *name); + // IPP data file attribute callback +typedef bool (*ipp_ferror_cb_t)(ipp_file_t *file, void *cb_data, const char *error); + // IPP data file error callback +typedef bool (*ipp_ftoken_cb_t)(ipp_file_t *file, void *cb_data, const char *token); + // IPP data file token callback + typedef ssize_t (*ipp_iocb_t)(void *context, ipp_uchar_t *buffer, size_t bytes); /**** ippReadIO/ippWriteIO callback function ****/ -typedef int (*ipp_copycb_t)(void *context, ipp_t *dst, ipp_attribute_t *attr); - /**** ippCopyAttributes callback function @since CUPS 1.6 ****/ +typedef bool (*ipp_copycb_t)(void *context, ipp_t *dst, ipp_attribute_t *attr); + /**** ippCopyAttributes callback function ****/ /* @@ -546,22 +554,42 @@ extern ipp_attribute_t *ippAddStringf(ipp_t *ipp, ipp_tag_t group, ipp_tag_t val extern ipp_attribute_t *ippAddStringfv(ipp_t *ipp, ipp_tag_t group, ipp_tag_t value_tag, const char *name, const char *language, const char *format, va_list ap) _CUPS_PUBLIC; extern ipp_attribute_t *ippAddStrings(ipp_t *ipp, ipp_tag_t group, ipp_tag_t value_tag, const char *name, size_t num_values, const char *language, const char * const *values) _CUPS_PUBLIC; extern size_t ippAttributeString(ipp_attribute_t *attr, char *buffer, size_t bufsize) _CUPS_PUBLIC; + extern int ippContainsInteger(ipp_attribute_t *attr, int value) _CUPS_PUBLIC; extern int ippContainsString(ipp_attribute_t *attr, const char *value) _CUPS_PUBLIC; extern ipp_attribute_t *ippCopyAttribute(ipp_t *dst, ipp_attribute_t *attr, int quickcopy) _CUPS_PUBLIC; extern int ippCopyAttributes(ipp_t *dst, ipp_t *src, int quickcopy, ipp_copycb_t cb, void *context) _CUPS_PUBLIC; extern cups_array_t *ippCreateRequestedArray(ipp_t *request) _CUPS_PUBLIC; + extern time_t ippDateToTime(const ipp_uchar_t *date) _CUPS_PUBLIC; extern void ippDelete(ipp_t *ipp) _CUPS_PUBLIC; extern void ippDeleteAttribute(ipp_t *ipp, ipp_attribute_t *attr) _CUPS_PUBLIC; extern int ippDeleteValues(ipp_t *ipp, ipp_attribute_t **attr, size_t element, size_t count) _CUPS_PUBLIC; + extern const char *ippEnumString(const char *attrname, int enumvalue) _CUPS_PUBLIC; extern int ippEnumValue(const char *attrname, const char *enumstring) _CUPS_PUBLIC; extern const char *ippErrorString(ipp_status_t error) _CUPS_PUBLIC; extern ipp_status_t ippErrorValue(const char *name) _CUPS_PUBLIC; + +extern bool ippFileClose(ipp_file_t *file) _CUPS_PUBLIC; +extern ipp_t *ippFileGetAttributes(ipp_file_t *file) _CUPS_PUBLIC; +extern const char *ippFileGetFilename(ipp_file_t *file) _CUPS_PUBLIC; +extern int ippFileGetLineNumber(ipp_file_t *file) _CUPS_PUBLIC; +extern const char *ippFileGetVar(ipp_file_t *file, const char *name) _CUPS_PUBLIC; +extern ipp_file_t *ippFileOpen(const char *filename, const char *mode, ipp_file_t *parent, ipp_fattr_cb_t attr_cb, ipp_ferror_cb_t error_cb, void *cb_data) _CUPS_PUBLIC; +extern bool ippFileRead(ipp_file_t *file, ipp_ftoken_cb_t token_cb) _CUPS_PUBLIC; +extern bool ippFileReadToken(ipp_file_t *file, char *buffer, size_t bufsize) _CUPS_PUBLIC; +extern void ippFileSetVar(ipp_file_t *file, const char *name, const char *value) _CUPS_PUBLIC; +extern void ippFileSetVarf(ipp_file_t *file, const char *name, const char *value, ...) _CUPS_FORMAT(3,4) _CUPS_PUBLIC; +extern bool ippFileWriteAttributes(ipp_file_t *file, ipp_t *ipp) _CUPS_PUBLIC; +extern bool ippFileWriteComment(ipp_file_t *file, const char *comment, ...) _CUPS_FORMAT(2,3) _CUPS_PUBLIC; +extern bool ippFileWriteToken(ipp_file_t *file, const char *token) _CUPS_PUBLIC; +extern bool ippFileWriteTokenf(ipp_file_t *file, const char *token, ...) _CUPS_FORMAT(2,3) _CUPS_PUBLIC; + extern ipp_attribute_t *ippFindAttribute(ipp_t *ipp, const char *name, ipp_tag_t value_tag) _CUPS_PUBLIC; extern ipp_attribute_t *ippFindNextAttribute(ipp_t *ipp, const char *name, ipp_tag_t value_tag) _CUPS_PUBLIC; extern ipp_attribute_t *ippFirstAttribute(ipp_t *ipp) _CUPS_PUBLIC; + extern bool ippGetBoolean(ipp_attribute_t *attr, size_t element) _CUPS_PUBLIC; extern ipp_t *ippGetCollection(ipp_attribute_t *attr, size_t element) _CUPS_PUBLIC; extern size_t ippGetCount(ipp_attribute_t *attr) _CUPS_PUBLIC; @@ -579,17 +607,23 @@ extern ipp_status_t ippGetStatusCode(ipp_t *ipp) _CUPS_PUBLIC; extern const char *ippGetString(ipp_attribute_t *attr, size_t element, const char **language) _CUPS_PUBLIC; extern ipp_tag_t ippGetValueTag(ipp_attribute_t *attr) _CUPS_PUBLIC; extern int ippGetVersion(ipp_t *ipp, int *minor) _CUPS_PUBLIC; + extern size_t ippLength(ipp_t *ipp) _CUPS_PUBLIC; + extern ipp_t *ippNew(void) _CUPS_PUBLIC; extern ipp_t *ippNewRequest(ipp_op_t op) _CUPS_PUBLIC; extern ipp_t *ippNewResponse(ipp_t *request) _CUPS_PUBLIC; extern ipp_attribute_t *ippNextAttribute(ipp_t *ipp) _CUPS_PUBLIC; + extern const char *ippOpString(ipp_op_t op) _CUPS_PUBLIC; extern ipp_op_t ippOpValue(const char *name) _CUPS_PUBLIC; + extern int ippPort(void) _CUPS_PUBLIC; + extern ipp_state_t ippRead(http_t *http, ipp_t *ipp) _CUPS_PUBLIC; extern ipp_state_t ippReadFile(int fd, ipp_t *ipp) _CUPS_PUBLIC; extern ipp_state_t ippReadIO(void *src, ipp_iocb_t cb, bool blocking, ipp_t *parent, ipp_t *ipp) _CUPS_PUBLIC; + extern int ippSetBoolean(ipp_t *ipp, ipp_attribute_t **attr, size_t element, bool boolvalue) _CUPS_PUBLIC; extern int ippSetCollection(ipp_t *ipp, ipp_attribute_t **attr, size_t element, ipp_t *colvalue) _CUPS_PUBLIC; extern int ippSetDate(ipp_t *ipp, ipp_attribute_t **attr, size_t element, const ipp_uchar_t *datevalue) _CUPS_PUBLIC; @@ -610,11 +644,14 @@ extern int ippSetStringfv(ipp_t *ipp, ipp_attribute_t **attr, size_t element, c extern int ippSetValueTag(ipp_t *ipp, ipp_attribute_t **attr, ipp_tag_t value_tag) _CUPS_PUBLIC; extern int ippSetVersion(ipp_t *ipp, int major, int minor) _CUPS_PUBLIC; extern const char *ippStateString(ipp_state_t state) _CUPS_PUBLIC; + extern const char *ippTagString(ipp_tag_t tag) _CUPS_PUBLIC; extern ipp_tag_t ippTagValue(const char *name) _CUPS_PUBLIC; extern const ipp_uchar_t *ippTimeToDate(time_t t) _CUPS_PUBLIC; + extern int ippValidateAttribute(ipp_attribute_t *attr) _CUPS_PUBLIC; extern int ippValidateAttributes(ipp_t *ipp) _CUPS_PUBLIC; + extern ipp_state_t ippWrite(http_t *http, ipp_t *ipp) _CUPS_PUBLIC; extern ipp_state_t ippWriteFile(int fd, ipp_t *ipp) _CUPS_PUBLIC; extern ipp_state_t ippWriteIO(void *dst, ipp_iocb_t cb, bool blocking, ipp_t *parent, ipp_t *ipp) _CUPS_PUBLIC; diff --git a/xcode/libcups.xcodeproj/project.pbxproj b/xcode/libcups.xcodeproj/project.pbxproj index 90b13249f..cfb486093 100644 --- a/xcode/libcups.xcodeproj/project.pbxproj +++ b/xcode/libcups.xcodeproj/project.pbxproj @@ -258,8 +258,6 @@ 27D3968E27BB3989003D3D8E /* libresolv.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = 27D3968227BB390D003D3D8E /* libresolv.tbd */; }; 720E854320164E7B00C6C411 /* ipp-file.c in Sources */ = {isa = PBXBuildFile; fileRef = 720E854120164E7A00C6C411 /* ipp-file.c */; }; 720E854420164E7B00C6C411 /* ipp-file.c in Sources */ = {isa = PBXBuildFile; fileRef = 720E854120164E7A00C6C411 /* ipp-file.c */; }; - 720E854520164E7B00C6C411 /* ipp-vars.c in Sources */ = {isa = PBXBuildFile; fileRef = 720E854220164E7A00C6C411 /* ipp-vars.c */; }; - 720E854620164E7B00C6C411 /* ipp-vars.c in Sources */ = {isa = PBXBuildFile; fileRef = 720E854220164E7A00C6C411 /* ipp-vars.c */; }; 72220EC51333056300FCA411 /* array.c in Sources */ = {isa = PBXBuildFile; fileRef = 72220EB81333056300FCA411 /* array.c */; }; 72220EC61333056300FCA411 /* array.h in Headers */ = {isa = PBXBuildFile; fileRef = 72220EB91333056300FCA411 /* array.h */; settings = {ATTRIBUTES = (Public, ); }; }; 72220EC81333056300FCA411 /* auth.c in Sources */ = {isa = PBXBuildFile; fileRef = 72220EBB1333056300FCA411 /* auth.c */; }; @@ -968,7 +966,6 @@ 27D3968227BB390D003D3D8E /* libresolv.tbd */ = {isa = PBXFileReference; lastKnownFileType = "sourcecode.text-based-dylib-definition"; name = libresolv.tbd; path = usr/lib/libresolv.tbd; sourceTree = SDKROOT; }; 27F89DA21B3AC43B00E5A4B7 /* testraster.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = testraster.c; path = ../cups/testraster.c; sourceTree = ""; }; 720E854120164E7A00C6C411 /* ipp-file.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = "ipp-file.c"; path = "../cups/ipp-file.c"; sourceTree = ""; }; - 720E854220164E7A00C6C411 /* ipp-vars.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = "ipp-vars.c"; path = "../cups/ipp-vars.c"; sourceTree = ""; }; 72220EAE1333047D00FCA411 /* libcups.dylib */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.dylib"; includeInIndex = 0; path = libcups.dylib; sourceTree = BUILT_PRODUCTS_DIR; }; 72220EB81333056300FCA411 /* array.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = array.c; path = ../cups/array.c; sourceTree = ""; }; 72220EB91333056300FCA411 /* array.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = array.h; path = ../cups/array.h; sourceTree = ""; }; @@ -1530,7 +1527,6 @@ 72220EE6133305BB00FCA411 /* ipp.c */, 720E854120164E7A00C6C411 /* ipp-file.c */, 72220EE5133305BB00FCA411 /* ipp-support.c */, - 720E854220164E7A00C6C411 /* ipp-vars.c */, 72220EEB133305BB00FCA411 /* language.h */, 72220EE9133305BB00FCA411 /* language-private.h */, 72220EE8133305BB00FCA411 /* langprintf.c */, @@ -2325,7 +2321,6 @@ 274FF68C1333B1C400317ECB /* array.c in Sources */, 7253C459216E981200494ADD /* raster-stream.c in Sources */, 274FF68E1333B1C400317ECB /* auth.c in Sources */, - 720E854620164E7B00C6C411 /* ipp-vars.c in Sources */, 274FF6931333B1C400317ECB /* debug.c in Sources */, 274FF6941333B1C400317ECB /* dest.c in Sources */, 274FF6951333B1C400317ECB /* dir.c in Sources */, @@ -2410,7 +2405,6 @@ 7253C457216E981000494ADD /* raster-stream.c in Sources */, 727AD5B719100A58009F6862 /* tls.c in Sources */, 72220EC81333056300FCA411 /* auth.c in Sources */, - 720E854520164E7B00C6C411 /* ipp-vars.c in Sources */, 72220F0B133305BB00FCA411 /* debug.c in Sources */, 72220F0C133305BB00FCA411 /* dest.c in Sources */, 72220F0D133305BB00FCA411 /* dir.c in Sources */, From 110fa4e751c1017f5feab6e80b901da327894298 Mon Sep 17 00:00:00 2001 From: Michael R Sweet Date: Tue, 31 May 2022 16:41:39 -0400 Subject: [PATCH 02/15] Migrate old private APIs to new public ippFile API. --- cups/ipp-file.c | 1636 +++++++++++++++++++++++++------------------- cups/ipp-private.h | 182 +++-- cups/ipp-support.c | 2 +- cups/ipp.h | 853 +++++++++++------------ tools/ipptool.c | 21 +- 5 files changed, 1454 insertions(+), 1240 deletions(-) diff --git a/cups/ipp-file.c b/cups/ipp-file.c index e9b55a1e4..b06f314d1 100644 --- a/cups/ipp-file.c +++ b/cups/ipp-file.c @@ -10,6 +10,7 @@ // #include "cups.h" +#include "http-private.h" #include "string-private.h" #include "debug-internal.h" @@ -21,8 +22,11 @@ struct _ipp_file_s // IPP data file { cups_file_t *fp; // File pointer - const char *filename; // Filename - int linenum; // Current line number + char *filename, // Filename + mode; // Read/write mode + int indent, // Current indentation + column, // Current column + linenum; // Current line number ipp_tag_t group_tag; // Current group for attributes ipp_t *attrs; // Current attributes size_t num_vars; // Number of variables @@ -41,11 +45,10 @@ struct _ipp_file_s // IPP data file // static bool expand_buffer(ipp_file_t *file, size_t buffer_size); -#if 0 -static ipp_t *parse_collection(_ipp_file_t *f, _ipp_vars_t *v, void *user_data); -static int parse_value(_ipp_file_t *f, _ipp_vars_t *v, void *user_data, ipp_t *ipp, ipp_attribute_t **attr, size_t element); -static void report_error(_ipp_file_t *f, _ipp_vars_t *v, void *user_data, const char *message, ...) _CUPS_FORMAT(4, 5); -#endif // 0 +static ipp_t *parse_collection(ipp_file_t *file); +static bool parse_value(ipp_file_t *file, ipp_t *ipp, ipp_attribute_t **attr, size_t element); +static bool report_error(ipp_file_t *file, const char *message, ...) _CUPS_FORMAT(2,3); +static bool write_string(ipp_file_t *file, const char *s, size_t len); // @@ -58,302 +61,330 @@ static void report_error(_ipp_file_t *f, _ipp_vars_t *v, void *user_data, const bool // O - `true` on success, `false` on error ippFileClose(ipp_file_t *file) // I - IPP data file { -} + bool ret; // Return value -// -// 'ippFileGetAttributes()' - Get the current set of attributes from an IPP data file. -// -// This function gets the current set of attributes from an IPP data file and -// clears the internal attribute pointer. The caller must call the -// @link ippDelete@ function to free the memory used by the attributes. -// + if (!file) + return (false); -ipp_t * // O - IPP attributes -ippFileGetAttributes(ipp_file_t *file) // I - IPP data file -{ -} + ret = cupsFileClose(file->fp); + free(file->filename); + cupsFreeOptions(file->num_vars, file->vars); + free(file->buffer); + free(file); -// -// 'ippFileGetFilename()' - . -// - -const char * -ippFileGetFilename(ipp_file_t *file) -{ + return (ret); } // -// 'ippFileGetLineNumber()' - . +// 'ippFileExpandVars()' - Expand IPP data file and environment variables in a string. +// +// This function expands IPP data file variables of the form "$name" and +// environment variables of the form "$ENV[name]" in the source string to the +// destination string. The // -int -ippFileGetLineNumber(ipp_file_t *file) +size_t // O - Required size for expanded variables +ippFileExpandVars(ipp_file_t *file, // I - IPP data file + char *dst, // I - Destination buffer + const char *src, // I - Source string + size_t dstsize) // I - Size of destination buffer { -} + char *dstptr, // Pointer into destination + *dstend, // End of destination + temp[256], // Temporary string + *tempptr; // Pointer into temporary string + const char *value; // Value to substitute -// -// 'ippFileGetVar()' - . -// - -const char * -ippFileGetVar(ipp_file_t *file, const char *name) -{ -} + dstptr = dst; + dstend = dst + dstsize - 1; + while (*src) + { + if (*src == '$') + { + /* + * Substitute a string/number... + */ -// -// 'ippFileOpen()' - . -// + if (!strncmp(src, "$$", 2)) + { + value = "$"; + src += 2; + } + else if (!strncmp(src, "$ENV[", 5)) + { + cupsCopyString(temp, src + 5, sizeof(temp)); -ipp_file_t * -ippFileOpen(const char *filename, const char *mode, ipp_file_t *parent, ipp_fattr_cb_t attr_cb, ipp_ferror_cb_t error_cb, void *cb_data) -{ -} + for (tempptr = temp; *tempptr; tempptr ++) + { + if (*tempptr == ']') + break; + } + if (*tempptr) + *tempptr++ = '\0'; -// -// 'ippFileRead()' - . -// + value = getenv(temp); + src += tempptr - temp + 5; + } + else + { + if (src[1] == '{') + { + src += 2; + cupsCopyString(temp, src, sizeof(temp)); + if ((tempptr = strchr(temp, '}')) != NULL) + *tempptr = '\0'; + else + tempptr = temp + strlen(temp); + } + else + { + cupsCopyString(temp, src + 1, sizeof(temp)); -bool // O - `true` on success, `false` on error -ippFileRead(ipp_file_t *file, ipp_ftoken_cb_t token_cb) -{ -} + for (tempptr = temp; *tempptr; tempptr ++) + { + if (!isalnum(*tempptr & 255) && *tempptr != '-' && *tempptr != '_') + break; + } + if (*tempptr) + *tempptr = '\0'; + } -// -// 'ippFileReadToken()' - . -// + value = ippFileGetVar(file, temp); -bool // O - `true` on success, `false` on error -ippFileReadToken(ipp_file_t *file, char *buffer, size_t bufsize) -{ -} + src += tempptr - temp + 1; + } + if (value) + { + cupsCopyString(dstptr, value, (size_t)(dstend - dstptr + 1)); + dstptr += strlen(value); + } + } + else if (dstptr < dstend) + *dstptr++ = *src++; + else + dstptr ++; + } -// -// 'ippFileSetVar()' - Set an IPP data file variable to a constant value. -// -// This function sets an IPP data file variable to a constant value. Setting -// the "uri" variable also initializes the "scheme", "uriuser", "hostname", -// "port", and "resource" variables. -// + if (dstptr < dstend) + *dstptr = '\0'; + else + *dstend = '\0'; -void -ippFileSetVar(ipp_file_t *file, // I - IPP data file - const char *name, // I - Variable name - const char *value) // I - Value -{ + return ((size_t)(dstptr - dst)); } // -// 'ippFileSetVarf()' - Set an IPP data file variable to a formatted value. +// 'ippFileGetAttributes()' - Get the current set of attributes from an IPP data file. // -// This function sets an IPP data file variable to a formatted value. Setting -// the "uri" variable also initializes the "scheme", "uriuser", "hostname", -// "port", and "resource" variables. +// This function gets the current set of attributes from an IPP data file and +// clears the internal attribute pointer. The caller must call the +// @link ippDelete@ function to free the memory used by the attributes. // -void -ippFileSetVarf(ipp_file_t *file, // I - IPP data file - const char *name, // I - Variable name - const char *value, // I - Printf-style value - ...) // I - Additional arguments as needed +ipp_t * // O - IPP attributes +ippFileGetAttributes(ipp_file_t *file) // I - IPP data file { + if (file) + { + ipp_t *attrs = file->attrs; // IPP attributes + + file->attrs = NULL; + return (attrs); + } + else + { + return (NULL); + } } // -// 'ippFileWriteAttributes()' - . +// 'ippFileGetFilename()' - Get the filename for an IPP data file. +// +// This function returns the filename associated with an IPP data file. // -bool // O - `true` on success, `false` on error -ippFileWriteAttributes( - ipp_file_t *file, // I - IPP data file - ipp_t *ipp) // I - IPP attributes to write +const char * // O - Filename +ippFileGetFilename(ipp_file_t *file) // I - IPP data file { + return (file ? file->filename : NULL); } // -// 'ippFileWriteComment()' - . +// 'ippFileGetLineNumber()' - Get the current line number in an IPP data file. +// +// This function returns the current line number in an IPP data file. // -bool // O - `true` on success, `false` on error -ippFileWriteComment(ipp_file_t *file, // I - IPP data file - const char *comment,// I - Printf-style comment string - ...) // I - Additional arguments as needed +int // O - Line number +ippFileGetLineNumber(ipp_file_t *file) // I - IPP data file { + return (file ? file->linenum : 0); } // -// 'ippFileWriteToken()' - . +// 'ippFileGetVar()' - Get the value of an IPP data file variable. +// +// This function returns the value of an IPP data file variable. `NULL` is +// returned if the variable is not set. // -bool // O - `true` on success, `false` on error -ippFileWriteToken(ipp_file_t *file, // I - IPP data file - const char *token) // I - Token/value string +const char * // O - Variable value or `NULL` if none. +ippFileGetVar(ipp_file_t *file, // I - IPP data file + const char *name) // I - Variable name { + if (!file || !name) + return (NULL); + else if (!strcmp(name, "user")) + return (cupsGetUser()); + else + return (cupsGetOption(name, file->num_vars, file->vars)); } // -// 'ippFileWriteTokenf()' - . +// 'ippFileOpen()' - Open an IPP data file for reading or writing. +// +// This function opens an IPP data file for reading (mode="r") or writing +// (mode="w"). If the "parent" argument is not `NULL`, all variables from the +// parent data file are copied to the new file. // -bool // O - `true` on success, `false` on error -ippFileWriteTokenf(ipp_file_t *file, // I - IPP data file - const char *token, // I - Printf-style token/value string - ...) // I - Additional arguments as needed +ipp_file_t * // O - IPP data file +ippFileOpen(const char *filename, // I - Filename to open + const char *mode, // I - Open mode - "r" to read and "w" to write + ipp_file_t *parent, // I - Parent data file or `NULL` for none + ipp_fattr_cb_t attr_cb, // I - Attribute filtering callback, if any + ipp_ferror_cb_t error_cb, // I - Error reporting callback, if any + void *cb_data) // I - Callback data, if any { - va_list ap; // Pointer to arguments - - - // Range check input... - if (!file || !token) - return (false); - - // -} + cups_file_t *fp; // IPP data file pointer + ipp_file_t *file; // IPP data file -// -// 'expand_buffer()' - Expand the output buffer of the IPP data file as needed. -// + if (!filename || !mode || (strcmp(mode, "r") && strcmp(mode, "w"))) + return (NULL); -static bool // O - `true` on success, `false` on failure -expand_buffer(ipp_file_t *file, // I - IPP data file - size_t buffer_size) // I - Required size -{ - char *buffer; // New buffer pointer + if ((fp = cupsFileOpen(filename, mode)) == NULL) + return (NULL); + if ((file = (ipp_file_t *)calloc(1, sizeof(ipp_file_t))) == NULL) + { + cupsFileClose(fp); + return (NULL); + } - // If we already have enough, return right away... - if (buffer_size <= file->alloc_buffer) - return (true); + file->fp = fp; + file->filename = strdup(filename); + file->mode = *mode; + file->linenum = 1; + file->attr_cb = attr_cb; + file->error_cb = error_cb; + file->cb_data = cb_data; - // Try allocating/expanding the current buffer... - if ((buffer = realloc(file->buffer, buffer_size)) == NULL) - return (false); + if (parent) + { + size_t count; // Looping var + cups_option_t *var; // Current variable - // Save new buffer and size... - file->buffer = buffer; - file->alloc_buffer = buffer_size; + for (count = parent->num_vars, var = parent->vars; count > 0; count --, var ++) + file->num_vars = cupsAddOption(var->name, var->value, file->num_vars, &file->vars); + } - return (true); + return (file); } -#if 0 -/* - * '_ippFileParse()' - Parse an IPP data file. - */ +// +// 'ippFileRead()' - Read an IPP data file. +// -ipp_t * /* O - IPP attributes or @code NULL@ on failure */ -_ippFileParse( - _ipp_vars_t *v, /* I - Variables */ - const char *filename, /* I - Name of file to parse */ - void *user_data) /* I - User data pointer */ +bool // O - `true` on success, `false` on error +ippFileRead(ipp_file_t *file, // I - IPP data file + ipp_ftoken_cb_t token_cb) // I - Token callback { - _ipp_file_t f; /* IPP data file information */ - ipp_t *attrs = NULL; /* Active IPP message */ - ipp_attribute_t *attr = NULL; /* Current attribute */ - char token[1024]; /* Token string */ - ipp_t *ignored = NULL; /* Ignored attributes */ - - - DEBUG_printf(("_ippFileParse(v=%p, filename=\"%s\", user_data=%p)", (void *)v, filename, user_data)); - - /* - * Initialize file info... - */ - - memset(&f, 0, sizeof(f)); - f.filename = filename; - f.linenum = 1; - - if ((f.fp = cupsFileOpen(filename, "r")) == NULL) - { - DEBUG_printf(("1_ippFileParse: Unable to open \"%s\": %s", filename, strerror(errno))); - return (0); - } + ipp_t *attrs = NULL; // Active IPP message + ipp_attribute_t *attr = NULL; // Current attribute + char token[1024]; // Token string + ipp_t *ignored = NULL; // Ignored attributes - /* - * Do the callback with a NULL token to setup any initial state... - */ - (*v->tokencb)(&f, v, user_data, NULL); - - /* - * Read data file, using the callback function as needed... - */ + // Range check input + if (!file || file->mode != 'r') + return (false); - while (_ippFileReadToken(&f, token, sizeof(token))) + // Read data file, using the callback function as needed... + while (ippFileReadToken(file, token, sizeof(token))) { if (!_cups_strcasecmp(token, "DEFINE") || !_cups_strcasecmp(token, "DEFINE-DEFAULT")) { - char name[128], /* Variable name */ - value[1024], /* Variable value */ - temp[1024]; /* Temporary string */ + char name[128], // Variable name + value[1024], // Variable value + temp[1024]; // Temporary string attr = NULL; - if (_ippFileReadToken(&f, name, sizeof(name)) && _ippFileReadToken(&f, temp, sizeof(temp))) + if (ippFileReadToken(file, name, sizeof(name)) && ippFileReadToken(file, temp, sizeof(temp))) { - if (_cups_strcasecmp(token, "DEFINE-DEFAULT") || !_ippVarsGet(v, name)) + if (_cups_strcasecmp(token, "DEFINE-DEFAULT") || !ippFileGetVar(file, name)) { - _ippVarsExpand(v, value, temp, sizeof(value)); - _ippVarsSet(v, name, value); + ippFileExpandVars(file, value, temp, sizeof(value)); + ippFileSetVar(file, name, value); } } else { - report_error(&f, v, user_data, "Missing %s name and/or value on line %d of \"%s\".", token, f.linenum, f.filename); + report_error(file, "Missing %s name and/or value on line %d of \"%s\".", token, file->linenum, file->filename); break; } } - else if (f.attrs && !_cups_strcasecmp(token, "ATTR")) + else if (file->attrs && !_cups_strcasecmp(token, "ATTR")) { /* * Attribute definition... */ - char syntax[128], /* Attribute syntax (value tag) */ - name[128]; /* Attribute name */ - ipp_tag_t value_tag; /* Value tag */ + char syntax[128], // Attribute syntax (value tag) + name[128]; // Attribute name + ipp_tag_t value_tag; // Value tag attr = NULL; - if (!_ippFileReadToken(&f, syntax, sizeof(syntax))) + if (!ippFileReadToken(file, syntax, sizeof(syntax))) { - report_error(&f, v, user_data, "Missing ATTR syntax on line %d of \"%s\".", f.linenum, f.filename); + report_error(file, "Missing ATTR syntax on line %d of \"%s\".", file->linenum, file->filename); break; } else if ((value_tag = ippTagValue(syntax)) < IPP_TAG_UNSUPPORTED_VALUE) { - report_error(&f, v, user_data, "Bad ATTR syntax \"%s\" on line %d of \"%s\".", syntax, f.linenum, f.filename); + report_error(file, "Bad ATTR syntax \"%s\" on line %d of \"%s\".", syntax, file->linenum, file->filename); break; } - if (!_ippFileReadToken(&f, name, sizeof(name)) || !name[0]) + if (!ippFileReadToken(file, name, sizeof(name)) || !name[0]) { - report_error(&f, v, user_data, "Missing ATTR name on line %d of \"%s\".", f.linenum, f.filename); + report_error(file, "Missing ATTR name on line %d of \"%s\".", file->linenum, file->filename); break; } - if (!v->attrcb || (*v->attrcb)(&f, user_data, name)) + if (!file->attr_cb || (*file->attr_cb)(file, file->cb_data, name)) { /* * Add this attribute... */ - attrs = f.attrs; + attrs = file->attrs; } else { @@ -373,7 +404,7 @@ _ippFileParse( * Add out-of-band attribute - no value string needed... */ - ippAddOutOfBand(attrs, f.group_tag, value_tag, name); + ippAddOutOfBand(attrs, file->group_tag, value_tag, name); } else { @@ -381,9 +412,9 @@ _ippFileParse( * Add attribute with one or more values... */ - attr = ippAddString(attrs, f.group_tag, value_tag, name, NULL, NULL); + attr = ippAddString(attrs, file->group_tag, value_tag, name, NULL, NULL); - if (!parse_value(&f, v, user_data, attrs, &attr, 0)) + if (!parse_value(file, attrs, &attr, 0)) break; } @@ -394,7 +425,7 @@ _ippFileParse( * Additional value... */ - if (!parse_value(&f, v, user_data, attrs, &attr, ippGetCount(attr))) + if (!parse_value(file, attrs, &attr, ippGetCount(attr))) break; } else @@ -406,67 +437,65 @@ _ippFileParse( attr = NULL; attrs = NULL; - if (!(*v->tokencb)(&f, v, user_data, token)) + if (!token_cb || !(token_cb)(file, file->cb_data, token)) break; } } - /* - * Close the file and free ignored attributes, then return any attributes we - * kept... - */ - - cupsFileClose(f.fp); + // Free any ignored attributes and return... ippDelete(ignored); - return (f.attrs); + return (true); } -/* - * '_ippFileReadToken()' - Read a token from an IPP data file. - */ +// +// 'ippFileReadToken()' - Read a token from an IPP data file. +// +// This function reads a single token or value from an IPP data file, skipping +// comments and whitespace as needed. +// -int /* O - 1 on success, 0 on failure */ -_ippFileReadToken(_ipp_file_t *f, /* I - File to read from */ - char *token, /* I - Token string buffer */ - size_t tokensize)/* I - Size of token string buffer */ +bool // O - `true` on success, `false` on error +ippFileReadToken(ipp_file_t *file, // I - IPP data file + char *token, // I - Token buffer + size_t tokensize) // I - Size of token buffer { - int ch, /* Character from file */ - quote = 0; /* Quoting character */ - char *tokptr = token, /* Pointer into token buffer */ - *tokend = token + tokensize - 1;/* End of token buffer */ + int ch, // Character from file + quote = 0; // Quoting character + char *tokptr = token, // Pointer into token buffer + *tokend = token + tokensize - 1;// End of token buffer - /* - * Skip whitespace and comments... - */ + // Range check input... + if (!file || !token || tokensize < 32) + { + if (token) + *token = '\0'; + + return (false); + } - DEBUG_printf(("1_ippFileReadToken: linenum=%d, pos=%ld", f->linenum, (long)cupsFileTell(f->fp))); + // Skip whitespace and comments... + DEBUG_printf(("1ippFileReadToken: linenum=%d, pos=%ld", file->linenum, (long)cupsFileTell(file->fp))); - while ((ch = cupsFileGetChar(f->fp)) != EOF) + while ((ch = cupsFileGetChar(file->fp)) != EOF) { if (_cups_isspace(ch)) { - /* - * Whitespace... - */ - + // Whitespace... if (ch == '\n') { - f->linenum ++; - DEBUG_printf(("1_ippFileReadToken: LF in leading whitespace, linenum=%d, pos=%ld", f->linenum, (long)cupsFileTell(f->fp))); + file->linenum ++; + DEBUG_printf(("1ippFileReadToken: LF in leading whitespace, linenum=%d, pos=%ld", file->linenum, (long)cupsFileTell(file->fp))); } } else if (ch == '#') { - /* - * Comment... - */ - - DEBUG_puts("1_ippFileReadToken: Skipping comment in leading whitespace..."); + // Comment... + DEBUG_puts("1ippFileReadToken: Skipping comment in leading whitespace..."); - while ((ch = cupsFileGetChar(f->fp)) != EOF) + while ((ch = cupsFileGetChar(file->fp)) != EOF) { if (ch == '\n') break; @@ -474,8 +503,8 @@ _ippFileReadToken(_ipp_file_t *f, /* I - File to read from */ if (ch == '\n') { - f->linenum ++; - DEBUG_printf(("1_ippFileReadToken: LF at end of comment, linenum=%d, pos=%ld", f->linenum, (long)cupsFileTell(f->fp))); + file->linenum ++; + DEBUG_printf(("1ippFileReadToken: LF at end of comment, linenum=%d, pos=%ld", file->linenum, (long)cupsFileTell(file->fp))); } else break; @@ -486,220 +515,652 @@ _ippFileReadToken(_ipp_file_t *f, /* I - File to read from */ if (ch == EOF) { - DEBUG_puts("1_ippFileReadToken: EOF"); - return (0); + DEBUG_puts("1ippFileReadToken: EOF"); + return (false); } - /* - * Read a token... - */ - + // Read a token... while (ch != EOF) { if (ch == '\n') { - f->linenum ++; - DEBUG_printf(("1_ippFileReadToken: LF in token, linenum=%d, pos=%ld", f->linenum, (long)cupsFileTell(f->fp))); + file->linenum ++; + DEBUG_printf(("1ippFileReadToken: LF in token, linenum=%d, pos=%ld", file->linenum, (long)cupsFileTell(file->fp))); } if (ch == quote) { - /* - * End of quoted text... - */ - + // End of quoted text... *tokptr = '\0'; - DEBUG_printf(("1_ippFileReadToken: Returning \"%s\" at closing quote.", token)); - return (1); + DEBUG_printf(("1ippFileReadToken: Returning \"%s\" at closing quote.", token)); + return (true); } else if (!quote && _cups_isspace(ch)) { - /* - * End of unquoted text... - */ - + // End of unquoted text... *tokptr = '\0'; - DEBUG_printf(("1_ippFileReadToken: Returning \"%s\" before whitespace.", token)); - return (1); + DEBUG_printf(("1ippFileReadToken: Returning \"%s\" before whitespace.", token)); + return (true); } else if (!quote && (ch == '\'' || ch == '\"')) { - /* - * Start of quoted text or regular expression... - */ - + // Start of quoted text or regular expression... quote = ch; - DEBUG_printf(("1_ippFileReadToken: Start of quoted string, quote=%c, pos=%ld", quote, (long)cupsFileTell(f->fp))); + DEBUG_printf(("1ippFileReadToken: Start of quoted string, quote=%c, pos=%ld", quote, (long)cupsFileTell(file->fp))); } else if (!quote && ch == '#') { - /* - * Start of comment... - */ - - cupsFileSeek(f->fp, cupsFileTell(f->fp) - 1); + // Start of comment... + cupsFileSeek(file->fp, cupsFileTell(file->fp) - 1); *tokptr = '\0'; - DEBUG_printf(("1_ippFileReadToken: Returning \"%s\" before comment.", token)); - return (1); + DEBUG_printf(("1ippFileReadToken: Returning \"%s\" before comment.", token)); + return (true); } else if (!quote && (ch == '{' || ch == '}' || ch == ',')) { - /* - * Delimiter... - */ - + // Delimiter... if (tokptr > token) { - /* - * Return the preceding token first... - */ + // Return the preceding token first... + cupsFileSeek(file->fp, cupsFileTell(file->fp) - 1); + } + else + { + // Return this delimiter by itself... + *tokptr++ = (char)ch; + } - cupsFileSeek(f->fp, cupsFileTell(f->fp) - 1); + *tokptr = '\0'; + DEBUG_printf(("1ippFileReadToken: Returning \"%s\".", token)); + return (true); + } + else + { + if (ch == '\\') + { + // Quoted character... + DEBUG_printf(("1ippFileReadToken: Quoted character at pos=%ld", (long)cupsFileTell(file->fp))); + + if ((ch = cupsFileGetChar(file->fp)) == EOF) + { + *token = '\0'; + DEBUG_puts("1ippFileReadToken: EOF"); + return (false); + } + else if (ch == '\n') + { + file->linenum ++; + DEBUG_printf(("1ippFileReadToken: quoted LF, linenum=%d, pos=%ld", file->linenum, (long)cupsFileTell(file->fp))); + } + else if (ch == 'a') + ch = '\a'; + else if (ch == 'b') + ch = '\b'; + else if (ch == 'f') + ch = '\f'; + else if (ch == 'n') + ch = '\n'; + else if (ch == 'r') + ch = '\r'; + else if (ch == 't') + ch = '\t'; + else if (ch == 'v') + ch = '\v'; + } + + if (tokptr < tokend) + { + // Add to current token... + *tokptr++ = (char)ch; } else { - /* - * Return this delimiter by itself... - */ + // Token too long... + *tokptr = '\0'; + DEBUG_printf(("1ippFileReadToken: Too long: \"%s\".", token)); + return (false); + } + } + + // Get the next character... + ch = cupsFileGetChar(file->fp); + } + + *tokptr = '\0'; + DEBUG_printf(("1ippFileReadToken: Returning \"%s\" at EOF.", token)); + + return (tokptr > token); +} + + +// +// 'ippFileSetVar()' - Set an IPP data file variable to a constant value. +// +// This function sets an IPP data file variable to a constant value. Setting +// the "uri" variable also initializes the "scheme", "uriuser", "hostname", +// "port", and "resource" variables. +// + +void +ippFileSetVar(ipp_file_t *file, // I - IPP data file + const char *name, // I - Variable name + const char *value) // I - Value +{ + if (!file || !name || !value) + return; + + // Save new variable... + if (!strcmp(name, "uri")) + { + // Also set URI component values... + char uri[1024], // New printer URI + resolved[1024], // Resolved mDNS URI + scheme[32], // URI scheme + userpass[256], // URI username:password + *password, // Pointer to password + hostname[256], // URI hostname + resource[256]; // URI resource path + int port; // URI port number + + if (strstr(value, "._tcp")) + { + // Resolve URI... + if (!_httpResolveURI(value, resolved, sizeof(resolved), _HTTP_RESOLVE_DEFAULT, NULL, NULL)) + return; + + value = resolved; + } + + if (httpSeparateURI(HTTP_URI_CODING_ALL, value, scheme, sizeof(scheme), userpass, sizeof(userpass), hostname, sizeof(hostname), &port, resource, sizeof(resource)) >= HTTP_URI_STATUS_OK) + { + // Valid URI... + if ((password = strchr(userpass, ':')) != NULL) + *password = '\0'; + + file->num_vars = cupsAddOption("scheme", scheme, file->num_vars, &file->vars); + file->num_vars = cupsAddOption("uriuser", userpass, file->num_vars, &file->vars); + file->num_vars = cupsAddOption("hostname", hostname, file->num_vars, &file->vars); + file->num_vars = cupsAddIntegerOption("port", port, file->num_vars, &file->vars); + file->num_vars = cupsAddOption("resource", resource, file->num_vars, &file->vars); + + httpAssembleURI(HTTP_URI_CODING_ALL, uri, sizeof(uri), scheme, NULL, hostname, port, resource); + file->num_vars = cupsAddOption("uri", uri, file->num_vars, &file->vars); + } + } + else + { + // Set another variable... + file->num_vars = cupsAddOption(name, value, file->num_vars, &file->vars); + } +} + + +// +// 'ippFileSetVarf()' - Set an IPP data file variable to a formatted value. +// +// This function sets an IPP data file variable to a formatted value. Setting +// the "uri" variable also initializes the "scheme", "uriuser", "hostname", +// "port", and "resource" variables. +// + +void +ippFileSetVarf(ipp_file_t *file, // I - IPP data file + const char *name, // I - Variable name + const char *value, // I - Printf-style value + ...) // I - Additional arguments as needed +{ + va_list ap; // Pointer to arguments + char buffer[16384]; // Value buffer + + + if (!file || !name || !value) + return; + + va_start(ap, value); + vsnprintf(buffer, sizeof(buffer), value, ap); + va_end(ap); + + ippFileSetVar(file, name, buffer); +} + + +// +// 'ippFileWriteAttributes()' - Write an IPP message to an IPP data file. +// +// This function writes an IPP message to an IPP data file using the attribute +// filter specified in the call to @link ippFileOpen@. If "with_group" is +// `true`, "GROUP" directives are written as necessary to place the attributes +// in the correct groups. +// + +bool // O - `true` on success, `false` on error +ippFileWriteAttributes( + ipp_file_t *file, // I - IPP data file + ipp_t *ipp, // I - IPP attributes to write + bool with_groups) // I - `true` to include GROUPs, `false` otherwise +{ + bool ret = true; // Return value + ipp_attribute_t *attr; // Current attribute + const char *name; // Attribute name + ipp_tag_t group_tag, // Group tag + value_tag; // Value tag + size_t i, // Looping var + count; // Number of values + + + // Range check input... + if (!file || file->mode != 'w' || !ipp) + return (false); + + // Make sure we are on a new line... + if (file->column) + { + cupsFilePutChar(file->fp, '\n'); + file->column = 0; + } + + // Loop through the attributes... + for (attr = ippFirstAttribute(ipp); attr; attr = ippNextAttribute(ipp)) + { + if ((name = ippGetName(attr)) == NULL) + continue; + + if (file->attr_cb && !(*file->attr_cb)(file, file->cb_data, name)) + continue; + + count = ippGetCount(attr); + group_tag = ippGetGroupTag(attr); + value_tag = ippGetValueTag(attr); + + if (with_groups && group_tag != IPP_TAG_ZERO && group_tag != file->group_tag) + { + ret &= ippFileWriteToken(file, "GROUP"); + ret &= ippFileWriteTokenf(file, "%s\n", ippTagString(group_tag)); + file->group_tag = group_tag; + } + + ret &= ippFileWriteToken(file, group_tag == IPP_TAG_ZERO ? "MEMBER" : "ATTR"); + ret &= ippFileWriteToken(file, ippTagString(value_tag)); + ret &= ippFileWriteToken(file, name); + + switch (value_tag) + { + case IPP_TAG_INTEGER : + case IPP_TAG_ENUM : + for (i = 0; i < count; i ++) + ret &= cupsFilePrintf(file->fp, "%s%d", i ? "," : " ", ippGetInteger(attr, i)); + break; + + case IPP_TAG_BOOLEAN : + ret &= cupsFilePuts(file->fp, ippGetBoolean(attr, 0) ? " true" : " false"); + + for (i = 1; i < count; i ++) + ret &= cupsFilePuts(file->fp, ippGetBoolean(attr, 1) ? ",true" : ",false"); + break; + + case IPP_TAG_RANGE : + for (i = 0; i < count; i ++) + { + int upper, lower = ippGetRange(attr, i, &upper); + // Upper/lower range values + + ret &= cupsFilePrintf(file->fp, "%s%d-%d", i ? "," : " ", lower, upper); + } + break; + + case IPP_TAG_RESOLUTION : + for (i = 0; i < count; i ++) + { + ipp_res_t units; // Resolution units + int yres, xres = ippGetResolution(attr, i, &yres, &units); + // X/Y resolution + + if (xres == yres) + ret &= cupsFilePrintf(file->fp, "%s%d%s", i ? "," : " ", xres, units == IPP_RES_PER_INCH ? "dpi" : "dpcm"); + else + ret &= cupsFilePrintf(file->fp, "%s%dx%d%s", i ? "," : " ", xres, yres, units == IPP_RES_PER_INCH ? "dpi" : "dpcm"); + } + break; + + case IPP_TAG_DATE : + for (i = 0; i < count; i ++) + { + time_t utctime = ippDateToTime(ippGetDate(attr, i)); + // Date/time value + struct tm utcdate; // Date/time components + + // Get the UTC date and time corresponding to this date value... + gmtime_r(&utctime, &utcdate); + + ret &= cupsFilePrintf(file->fp, "%s%04d-%02d-%02dT%02d:%02d:%02dZ", i ? "," : " ", utcdate.tm_year + 1900, utcdate.tm_mon + 1, utcdate.tm_mday, utcdate.tm_hour, utcdate.tm_min, utcdate.tm_sec); + } + break; + + case IPP_TAG_STRING : + for (i = 0; i < count; i ++) + { + size_t len; // Length of octetString + const char *s = (const char *)ippGetOctetString(attr, i, &len); + // octetString value + + ret &= cupsFilePuts(file->fp, i ? "," : " "); + ret &= write_string(file, s, len); + } + break; + + case IPP_TAG_TEXT : + case IPP_TAG_TEXTLANG : + case IPP_TAG_NAME : + case IPP_TAG_NAMELANG : + case IPP_TAG_KEYWORD : + case IPP_TAG_URI : + case IPP_TAG_URISCHEME : + case IPP_TAG_CHARSET : + case IPP_TAG_LANGUAGE : + case IPP_TAG_MIMETYPE : + for (i = 0; i < count; i ++) + { + const char *s = ippGetString(attr, i, NULL); + // String value + + ret &= cupsFilePuts(file->fp, i ? "," : " "); + ret &= write_string(file, s, strlen(s)); + } + break; + + case IPP_TAG_BEGIN_COLLECTION : + file->indent += 4; + for (i = 0; i < count; i ++) + { + ret &= cupsFilePuts(file->fp, i ? ",{\n" : " {\n"); + ret &= ippFileWriteAttributes(file, ippGetCollection(attr, i), false); + ret &= cupsFilePrintf(file->fp, "%*s}", file->indent - 4, ""); + } + file->indent -= 4; + break; + + default : + /* Out-of-band value */ + break; + } + + // Finish with a newline after the attribute definition + ret &= cupsFilePutChar(file->fp, '\n'); + } + + return (ret); +} + + +// +// 'ippFileWriteComment()' - Write a comment to an IPP data file. +// +// This function writes a comment to an IPP data file. Every line in the string +// is prefixed with the "#" character and indented as needed. +// + +bool // O - `true` on success, `false` on error +ippFileWriteComment(ipp_file_t *file, // I - IPP data file + const char *comment,// I - Printf-style comment string + ...) // I - Additional arguments as needed +{ + bool ret = true; // Return value + va_list ap, // Pointer to arguments + ap2; // Copy of arguments + int bufsize; // Size of formatted string + const char *start, // Start of comment line + *ptr; // Pointer into comment + + + // Range check input... + if (!file || file->mode != 'w' || !comment) + return (false); + + // Format the comment... + va_start(ap, comment); + va_copy(ap2, ap); + + if ((bufsize = vsnprintf(file->buffer, file->alloc_buffer, comment, ap2)) >= (int)file->alloc_buffer) + { + if (!expand_buffer(file, (size_t)bufsize + 1)) + return (false); + + vsnprintf(file->buffer, file->alloc_buffer, comment, ap); + } + + va_end(ap); + + // Make sure we start on a new line... + if (file->column > 0) + { + ret &= cupsFilePutChar(file->fp, '\n'); + file->column = 0; + } + + for (start = file->buffer, ptr = start; *ptr; start = ptr) + { + // Find the end of the line... + while (*ptr && *ptr != '\n') + ptr ++; + + // Write this line... + ret &= cupsFilePrintf(file->fp, "%*s# ", file->indent, ""); + ret &= cupsFileWrite(file->fp, start, (size_t)(ptr - start)); + ret &= cupsFilePutChar(file->fp, '\n'); + + // Skip newline, if any... + if (*ptr) + ptr ++; + } + + return (ret); +} + + +// +// 'ippFileWriteToken()' - Write a token or value string to an IPP data file. +// +// This function writes a token or value string to an IPP data file, quoting +// and indenting the string as needed. +// + +bool // O - `true` on success, `false` on error +ippFileWriteToken(ipp_file_t *file, // I - IPP data file + const char *token) // I - Token/value string +{ + const char *ptr; // Pointer into token/value string + bool ret = true; // Return value + + + // Range check input... + if (!file || file->mode != 'w' || !token) + return (false); + + // Handle indentation... + if (!strcmp(token, "}")) + { + // Add newline before '}' as needed and unindent... + if (file->column > 0) + { + ret &= cupsFilePutChar(file->fp, '\n'); + file->column = 0; + } + + if (file->indent > 0) + file->indent -= 4; + } + + if (file->column == 0 && file->indent > 0) + { + ret &= cupsFilePrintf(file->fp, "%*s", file->indent, ""); + file->column += file->indent; + } + else if (strcmp(token, "{") && strcmp(token, "}")) + { + ret &= cupsFilePutChar(file->fp, ' '); + file->column ++; + } + + // Look for whitespace or special characters... + for (ptr = token; *ptr; ptr ++) + { + if (strchr(" \t\'\"\\", *ptr)) + break; + } - *tokptr++ = (char)ch; - } + if (*ptr) + { + // Need to quote the string + ret &= write_string(file, token, strlen(token)); + } + else if (!strcmp(token, "{")) + { + // Add newline after '{' and indent... + ret &= cupsFilePuts(file->fp, "{\n"); + file->column = 0; + file->indent += 4; + } + else if (!strcmp(token, "}")) + { + // Add newline after '}'... + ret &= cupsFilePuts(file->fp, "}\n"); + file->column = 0; + } + else + { + // Just write the string as-is... + ret &= cupsFilePuts(file->fp, token); - *tokptr = '\0'; - DEBUG_printf(("1_ippFileReadToken: Returning \"%s\".", token)); - return (1); + if ((ptr = token + strlen(token) - 1) >= token && *ptr == '\n') + { + // New line... + file->column = 0; } else { - if (ch == '\\') - { - /* - * Quoted character... - */ + // Existing line... + file->column += strlen(token); + } + } - DEBUG_printf(("1_ippFileReadToken: Quoted character at pos=%ld", (long)cupsFileTell(f->fp))); + return (ret); +} - if ((ch = cupsFileGetChar(f->fp)) == EOF) - { - *token = '\0'; - DEBUG_puts("1_ippFileReadToken: EOF"); - return (0); - } - else if (ch == '\n') - { - f->linenum ++; - DEBUG_printf(("1_ippFileReadToken: quoted LF, linenum=%d, pos=%ld", f->linenum, (long)cupsFileTell(f->fp))); - } - else if (ch == 'a') - ch = '\a'; - else if (ch == 'b') - ch = '\b'; - else if (ch == 'f') - ch = '\f'; - else if (ch == 'n') - ch = '\n'; - else if (ch == 'r') - ch = '\r'; - else if (ch == 't') - ch = '\t'; - else if (ch == 'v') - ch = '\v'; - } - if (tokptr < tokend) - { - /* - * Add to current token... - */ +// +// 'ippFileWriteTokenf()' - Write a formatted token or value string to an IPP data file. +// +// This function writes a formatted token or value string to an IPP data file, +// quoting and indenting the string as needed. +// - *tokptr++ = (char)ch; - } - else - { - /* - * Token too long... - */ +bool // O - `true` on success, `false` on error +ippFileWriteTokenf(ipp_file_t *file, // I - IPP data file + const char *token, // I - Printf-style token/value string + ...) // I - Additional arguments as needed +{ + va_list ap, // Pointer to arguments + ap2; // Copy of arguments + int bufsize; // Size of formatted string - *tokptr = '\0'; - DEBUG_printf(("1_ippFileReadToken: Too long: \"%s\".", token)); - return (0); - } - } - /* - * Get the next character... - */ + // Range check input... + if (!file || file->mode != 'w' || !token) + return (false); + + // Format the message... + va_start(ap, token); + va_copy(ap2, ap); - ch = cupsFileGetChar(f->fp); + if ((bufsize = vsnprintf(file->buffer, file->alloc_buffer, token, ap2)) >= (int)file->alloc_buffer) + { + if (!expand_buffer(file, (size_t)bufsize + 1)) + return (false); + + vsnprintf(file->buffer, file->alloc_buffer, token, ap); } - *tokptr = '\0'; - DEBUG_printf(("1_ippFileReadToken: Returning \"%s\" at EOF.", token)); + va_end(ap); - return (tokptr > token); + return (ippFileWriteToken(file, file->buffer)); } -/* - * 'parse_collection()' - Parse an IPP collection value. - */ +// +// 'expand_buffer()' - Expand the output buffer of the IPP data file as needed. +// -static ipp_t * /* O - Collection value or @code NULL@ on error */ -parse_collection( - _ipp_file_t *f, /* I - IPP data file */ - _ipp_vars_t *v, /* I - IPP variables */ - void *user_data) /* I - User data pointer */ +static bool // O - `true` on success, `false` on failure +expand_buffer(ipp_file_t *file, // I - IPP data file + size_t buffer_size) // I - Required size { - ipp_t *col = ippNew(); /* Collection value */ - ipp_attribute_t *attr = NULL; /* Current member attribute */ - char token[1024]; /* Token string */ + char *buffer; // New buffer pointer + + + // If we already have enough, return right away... + if (buffer_size <= file->alloc_buffer) + return (true); + + // Try allocating/expanding the current buffer... + if ((buffer = realloc(file->buffer, buffer_size)) == NULL) + return (false); + + // Save new buffer and size... + file->buffer = buffer; + file->alloc_buffer = buffer_size; + + return (true); +} + + +// +// 'parse_collection()' - Parse an IPP collection value. +// +static ipp_t * // O - Collection value or @code NULL@ on error +parse_collection(ipp_file_t *file) // I - IPP data file +{ + ipp_t *col = ippNew(); // Collection value + ipp_attribute_t *attr = NULL; // Current member attribute + char token[1024]; // Token string - /* - * Parse the collection value... - */ - while (_ippFileReadToken(f, token, sizeof(token))) + // Parse the collection value... + while (ippFileReadToken(file, token, sizeof(token))) { if (!_cups_strcasecmp(token, "}")) { - /* - * End of collection value... - */ - + // End of collection value... break; } else if (!_cups_strcasecmp(token, "MEMBER")) { - /* - * Member attribute definition... - */ - - char syntax[128], /* Attribute syntax (value tag) */ - name[128]; /* Attribute name */ - ipp_tag_t value_tag; /* Value tag */ + // Member attribute definition... + char syntax[128], // Attribute syntax (value tag) + name[128]; // Attribute name + ipp_tag_t value_tag; // Value tag attr = NULL; - if (!_ippFileReadToken(f, syntax, sizeof(syntax))) + if (!ippFileReadToken(file, syntax, sizeof(syntax))) { - report_error(f, v, user_data, "Missing MEMBER syntax on line %d of \"%s\".", f->linenum, f->filename); + report_error(file, "Missing MEMBER syntax on line %d of \"%s\".", file->linenum, file->filename); ippDelete(col); col = NULL; break; } else if ((value_tag = ippTagValue(syntax)) < IPP_TAG_UNSUPPORTED_VALUE) { - report_error(f, v, user_data, "Bad MEMBER syntax \"%s\" on line %d of \"%s\".", syntax, f->linenum, f->filename); + report_error(file, "Bad MEMBER syntax \"%s\" on line %d of \"%s\".", syntax, file->linenum, file->filename); ippDelete(col); col = NULL; break; } - if (!_ippFileReadToken(f, name, sizeof(name)) || !name[0]) + if (!ippFileReadToken(file, name, sizeof(name)) || !name[0]) { - report_error(f, v, user_data, "Missing MEMBER name on line %d of \"%s\".", f->linenum, f->filename); + report_error(file, "Missing MEMBER name on line %d of \"%s\".", file->linenum, file->filename); ippDelete(col); col = NULL; break; @@ -707,21 +1168,15 @@ parse_collection( if (value_tag < IPP_TAG_INTEGER) { - /* - * Add out-of-band attribute - no value string needed... - */ - + // Add out-of-band attribute - no value string needed... ippAddOutOfBand(col, IPP_TAG_ZERO, value_tag, name); } else { - /* - * Add attribute with one or more values... - */ - + // Add attribute with one or more values... attr = ippAddString(col, IPP_TAG_ZERO, value_tag, name, NULL, NULL); - if (!parse_value(f, v, user_data, col, &attr, 0)) + if (!parse_value(file, col, &attr, 0)) { ippDelete(col); col = NULL; @@ -732,11 +1187,8 @@ parse_collection( } else if (attr && !_cups_strcasecmp(token, ",")) { - /* - * Additional value... - */ - - if (!parse_value(f, v, user_data, col, &attr, ippGetCount(attr))) + // Additional value... + if (!parse_value(file, col, &attr, ippGetCount(attr))) { ippDelete(col); col = NULL; @@ -745,11 +1197,8 @@ parse_collection( } else { - /* - * Something else... - */ - - report_error(f, v, user_data, "Unknown directive \"%s\" on line %d of \"%s\".", token, f->linenum, f->filename); + // Something else... + report_error(file, "Unknown directive \"%s\" on line %d of \"%s\".", token, file->linenum, file->filename); ippDelete(col); col = NULL; attr = NULL; @@ -762,32 +1211,30 @@ parse_collection( } -/* - * 'parse_value()' - Parse an IPP value. - */ +// +// 'parse_value()' - Parse an IPP value. +// -static int /* O - 1 on success or 0 on error */ -parse_value(_ipp_file_t *f, /* I - IPP data file */ - _ipp_vars_t *v, /* I - IPP variables */ - void *user_data,/* I - User data pointer */ - ipp_t *ipp, /* I - IPP message */ - ipp_attribute_t **attr, /* IO - IPP attribute */ - size_t element) /* I - Element number */ +static bool // O - `true` on success or `false` on error +parse_value(ipp_file_t *file, // I - IPP data file + ipp_t *ipp, // I - IPP message + ipp_attribute_t **attr, // IO - IPP attribute + size_t element) // I - Element number { - char value[2049], /* Value string */ - *valueptr, /* Pointer into value string */ - temp[2049], /* Temporary string */ - *tempptr; /* Pointer into temporary string */ - size_t valuelen; /* Length of value */ + char value[2049], // Value string + *valueptr, // Pointer into value string + temp[2049], // Temporary string + *tempptr; // Pointer into temporary string + size_t valuelen; // Length of value - if (!_ippFileReadToken(f, temp, sizeof(temp))) + if (!ippFileReadToken(file, temp, sizeof(temp))) { - report_error(f, v, user_data, "Missing value on line %d of \"%s\".", f->linenum, f->filename); - return (0); + report_error(file, "Missing value on line %d of \"%s\".", file->linenum, file->filename); + return (false); } - _ippVarsExpand(v, value, temp, sizeof(value)); + ippFileExpandVars(file, value, temp, sizeof(value)); switch (ippGetValueTag(*attr)) { @@ -800,24 +1247,21 @@ parse_value(_ipp_file_t *f, /* I - IPP data file */ case IPP_TAG_DATE : { - int year, /* Year */ - month, /* Month */ - day, /* Day of month */ - hour, /* Hour */ - minute, /* Minute */ - second, /* Second */ - utc_offset = 0; /* Timezone offset from UTC */ - ipp_uchar_t date[11]; /* dateTime value */ + int year, // Year + month, // Month + day, // Day of month + hour, // Hour + minute, // Minute + second, // Second + utc_offset = 0; // Timezone offset from UTC + ipp_uchar_t date[11]; // dateTime value if (*value == 'P') { - /* - * Time period... - */ - - time_t curtime; /* Current time in seconds */ - int period = 0, /* Current period value */ - saw_T = 0; /* Saw time separator */ + // Time period... + time_t curtime; // Current time in seconds + int period = 0, // Current period value + saw_T = 0; // Saw time separator curtime = time(NULL); @@ -829,8 +1273,8 @@ parse_value(_ipp_file_t *f, /* I - IPP data file */ if (!valueptr || period < 0) { - report_error(f, v, user_data, "Bad dateTime value \"%s\" on line %d of \"%s\".", value, f->linenum, f->filename); - return (0); + report_error(file, "Bad dateTime value \"%s\" on line %d of \"%s\".", value, file->linenum, file->filename); + return (false); } } @@ -870,8 +1314,8 @@ parse_value(_ipp_file_t *f, /* I - IPP data file */ } else { - report_error(f, v, user_data, "Bad dateTime value \"%s\" on line %d of \"%s\".", value, f->linenum, f->filename); - return (0); + report_error(file, "Bad dateTime value \"%s\" on line %d of \"%s\".", value, file->linenum, file->filename); + return (false); } } @@ -879,12 +1323,9 @@ parse_value(_ipp_file_t *f, /* I - IPP data file */ } else if (sscanf(value, "%d-%d-%dT%d:%d:%d%d", &year, &month, &day, &hour, &minute, &second, &utc_offset) < 6) { - /* - * Date/time value did not parse... - */ - - report_error(f, v, user_data, "Bad dateTime value \"%s\" on line %d of \"%s\".", value, f->linenum, f->filename); - return (0); + // Date/time value did not parse... + report_error(file, "Bad dateTime value \"%s\" on line %d of \"%s\".", value, file->linenum, file->filename); + return (false); } date[0] = (ipp_uchar_t)(year >> 8); @@ -913,9 +1354,9 @@ parse_value(_ipp_file_t *f, /* I - IPP data file */ case IPP_TAG_RESOLUTION : { - int xres, /* X resolution */ - yres; /* Y resolution */ - char *ptr; /* Pointer into value */ + int xres, // X resolution + yres; // Y resolution + char *ptr; // Pointer into value xres = yres = (int)strtol(value, (char **)&ptr, 10); if (ptr > value && xres > 0) @@ -926,8 +1367,8 @@ parse_value(_ipp_file_t *f, /* I - IPP data file */ if (ptr <= value || xres <= 0 || yres <= 0 || !ptr || (_cups_strcasecmp(ptr, "dpi") && _cups_strcasecmp(ptr, "dpc") && _cups_strcasecmp(ptr, "dpcm") && _cups_strcasecmp(ptr, "other"))) { - report_error(f, v, user_data, "Bad resolution value \"%s\" on line %d of \"%s\".", value, f->linenum, f->filename); - return (0); + report_error(file, "Bad resolution value \"%s\" on line %d of \"%s\".", value, file->linenum, file->filename); + return (false); } if (!_cups_strcasecmp(ptr, "dpi")) @@ -940,13 +1381,13 @@ parse_value(_ipp_file_t *f, /* I - IPP data file */ case IPP_TAG_RANGE : { - int lower, /* Lower value */ - upper; /* Upper value */ + int lower, // Lower value + upper; // Upper value if (sscanf(value, "%d-%d", &lower, &upper) != 2) { - report_error(f, v, user_data, "Bad rangeOfInteger value \"%s\" on line %d of \"%s\".", value, f->linenum, f->filename); - return (0); + report_error(file, "Bad rangeOfInteger value \"%s\" on line %d of \"%s\".", value, file->linenum, file->filename); + return (false); } return (ippSetRange(ipp, attr, element, lower, upper)); @@ -959,8 +1400,8 @@ parse_value(_ipp_file_t *f, /* I - IPP data file */ { if (valuelen & 1) { - report_error(f, v, user_data, "Bad octetString value on line %d of \"%s\".", f->linenum, f->filename); - return (0); + report_error(file, "Bad octetString value on line %d of \"%s\".", file->linenum, file->filename); + return (false); } valueptr = value + 1; @@ -970,8 +1411,8 @@ parse_value(_ipp_file_t *f, /* I - IPP data file */ { if (!isxdigit(valueptr[0] & 255) || !isxdigit(valueptr[1] & 255)) { - report_error(f, v, user_data, "Bad octetString value on line %d of \"%s\".", f->linenum, f->filename); - return (0); + report_error(file, "Bad octetString value on line %d of \"%s\".", file->linenum, file->filename); + return (false); } if (valueptr[0] >= '0' && valueptr[0] <= '9') @@ -1006,17 +1447,17 @@ parse_value(_ipp_file_t *f, /* I - IPP data file */ case IPP_TAG_BEGIN_COLLECTION : { - int status; /* Add status */ - ipp_t *col; /* Collection value */ + bool status; // Add status + ipp_t *col; // Collection value if (strcmp(value, "{")) { - report_error(f, v, user_data, "Bad collection value on line %d of \"%s\".", f->linenum, f->filename); - return (0); + report_error(file, "Bad collection value on line %d of \"%s\".", file->linenum, file->filename); + return (false); } - if ((col = parse_collection(f, v, user_data)) == NULL) - return (0); + if ((col = parse_collection(file)) == NULL) + return (false); status = ippSetCollection(ipp, attr, element, col); ippDelete(col); @@ -1025,298 +1466,85 @@ parse_value(_ipp_file_t *f, /* I - IPP data file */ } default : - report_error(f, v, user_data, "Unsupported value on line %d of \"%s\".", f->linenum, f->filename); - return (0); + report_error(file, "Unsupported value on line %d of \"%s\".", file->linenum, file->filename); + return (false); } } -/* - * 'report_error()' - Report an error. - */ +// +// 'report_error()' - Report an error. +// -static void +static bool // O - `true` to continue, `false` to stop report_error( - _ipp_file_t *f, /* I - IPP data file */ - _ipp_vars_t *v, /* I - Error callback function, if any */ - void *user_data, /* I - User data pointer */ - const char *message, /* I - Printf-style message */ - ...) /* I - Additional arguments as needed */ + ipp_file_t *file, // I - IPP data file + const char *message, // I - Printf-style message + ...) // I - Additional arguments as needed { - char buffer[8192]; /* Formatted string */ - va_list ap; /* Argument pointer */ + va_list ap; // Argument pointer + char buffer[8192]; // Formatted string va_start(ap, message); vsnprintf(buffer, sizeof(buffer), message, ap); va_end(ap); - if (v->errorcb) - (*v->errorcb)(f, user_data, buffer); - else - fprintf(stderr, "%s\n", buffer); -} -/* - * IPP data file parsing functions. - * - * Copyright © 2022 by OpenPrinting. - * Copyright © 2007-2019 by Apple Inc. - * Copyright © 1997-2007 by Easy Software Products. - * - * Licensed under Apache License v2.0. See the file "LICENSE" for more - * information. - */ - -/* - * Include necessary headers... - */ - -#include "cups-private.h" -#include "ipp-private.h" -#include "string-private.h" -#include "debug-internal.h" - - -/* - * '_ippVarsDeinit()' - Free all memory associated with the IPP variables. - */ - -void -_ippVarsDeinit(_ipp_vars_t *v) /* I - IPP variables */ -{ - if (v->uri) - { - free(v->uri); - v->uri = NULL; - } + if (file->error_cb) + return ((*file->error_cb)(file, file->cb_data, buffer)); - cupsFreeOptions(v->num_vars, v->vars); - v->num_vars = 0; - v->vars = NULL; + fprintf(stderr, "%s\n", buffer); + return (true); } -/* - * '_ippVarsExpand()' - Expand variables in the source string. - */ +// +// 'write_string()' - Write a quoted string value. +// -void -_ippVarsExpand(_ipp_vars_t *v, /* I - IPP variables */ - char *dst, /* I - Destination buffer */ - const char *src, /* I - Source string */ - size_t dstsize) /* I - Destination buffer size */ +static bool // O - `true` on success, `false` on failure +write_string(ipp_file_t *file, // I - IPP data file + const char *s, // I - String + size_t len) // I - Length of string { - char *dstptr, /* Pointer into destination */ - *dstend, /* End of destination */ - temp[256], /* Temporary string */ - *tempptr; /* Pointer into temporary string */ - const char *value; /* Value to substitute */ + bool ret = true; // Return value + const char *start, // Start of string + *ptr, // Pointer into string + *end; // End of string - dstptr = dst; - dstend = dst + dstsize - 1; + // Start with a double quote... + ret &= cupsFilePutChar(file->fp, '\"'); + file->column ++; - while (*src && dstptr < dstend) + // Loop through the string... + for (start = s, end = s + len, ptr = start; ptr < end; ptr ++) { - if (*src == '$') + if (*ptr == '\"' || *ptr == '\\') { - /* - * Substitute a string/number... - */ - - if (!strncmp(src, "$$", 2)) - { - value = "$"; - src += 2; - } - else if (!strncmp(src, "$ENV[", 5)) - { - cupsCopyString(temp, src + 5, sizeof(temp)); - - for (tempptr = temp; *tempptr; tempptr ++) - if (*tempptr == ']') - break; - - if (*tempptr) - *tempptr++ = '\0'; - - value = getenv(temp); - src += tempptr - temp + 5; - } - else + // Something that needs to be quoted... + if (ptr > start) { - if (src[1] == '{') - { - src += 2; - cupsCopyString(temp, src, sizeof(temp)); - if ((tempptr = strchr(temp, '}')) != NULL) - *tempptr = '\0'; - else - tempptr = temp + strlen(temp); - } - else - { - cupsCopyString(temp, src + 1, sizeof(temp)); - - for (tempptr = temp; *tempptr; tempptr ++) - if (!isalnum(*tempptr & 255) && *tempptr != '-' && *tempptr != '_') - break; - - if (*tempptr) - *tempptr = '\0'; - } - - value = _ippVarsGet(v, temp); - - src += tempptr - temp + 1; + // Write lead-in text... + ret &= cupsFileWrite(file->fp, start, (size_t)(ptr - start)); + file->column += ptr - start; } - if (value) - { - cupsCopyString(dstptr, value, (size_t)(dstend - dstptr + 1)); - dstptr += strlen(dstptr); - } + // Then quote the " or \... + ret &= cupsFilePrintf(file->fp, "\\%c", *ptr); + start = ptr + 1; + file->column ++; } - else - *dstptr++ = *src++; } - *dstptr = '\0'; -} - - -/* - * '_ippVarsGet()' - Get a variable string. - */ - -const char * /* O - Value or @code NULL@ if not set */ -_ippVarsGet(_ipp_vars_t *v, /* I - IPP variables */ - const char *name) /* I - Variable name */ -{ - if (!v) - return (NULL); - else if (!strcmp(name, "uri")) - return (v->uri); - else if (!strcmp(name, "uriuser") || !strcmp(name, "username")) - return (v->username[0] ? v->username : NULL); - else if (!strcmp(name, "scheme") || !strcmp(name, "method")) - return (v->scheme); - else if (!strcmp(name, "hostname")) - return (v->host); - else if (!strcmp(name, "port")) - return (v->portstr); - else if (!strcmp(name, "resource")) - return (v->resource); - else if (!strcmp(name, "user")) - return (cupsGetUser()); - else - return (cupsGetOption(name, v->num_vars, v->vars)); -} - - -/* - * '_ippVarsInit()' - Initialize . - */ - -void -_ippVarsInit(_ipp_vars_t *v, /* I - IPP variables */ - _ipp_fattr_cb_t attrcb, /* I - Attribute (filter) callback */ - _ipp_ferror_cb_t errorcb, /* I - Error callback */ - _ipp_ftoken_cb_t tokencb) /* I - Token callback */ -{ - memset(v, 0, sizeof(_ipp_vars_t)); - - v->attrcb = attrcb; - v->errorcb = errorcb; - v->tokencb = tokencb; -} - - -/* - * '_ippVarsPasswordCB()' - Password callback using the IPP variables. - */ - -const char * /* O - Password string or @code NULL@ */ -_ippVarsPasswordCB( - const char *prompt, /* I - Prompt string (not used) */ - http_t *http, /* I - HTTP connection (not used) */ - const char *method, /* I - HTTP method (not used) */ - const char *resource, /* I - Resource path (not used) */ - void *user_data) /* I - IPP variables */ -{ - _ipp_vars_t *v = (_ipp_vars_t *)user_data; - /* I - IPP variables */ - - - (void)prompt; - (void)http; - (void)method; - (void)resource; - - if (v->username[0] && v->password && v->password_tries < 3) - { - v->password_tries ++; - - cupsSetUser(v->username); - - return (v->password); - } - else + if (ptr > start) { - return (NULL); + ret &= cupsFileWrite(file->fp, start, (size_t)(ptr - start)); + file->column += ptr - start; } -} - - -/* - * '_ippVarsSet()' - Set an IPP variable. - */ - -int /* O - 1 on success, 0 on failure */ -_ippVarsSet(_ipp_vars_t *v, /* I - IPP variables */ - const char *name, /* I - Variable name */ - const char *value) /* I - Variable value */ -{ - if (!strcmp(name, "uri")) - { - char uri[1024]; /* New printer URI */ - char resolved[1024]; /* Resolved mDNS URI */ - - if (strstr(value, "._tcp")) - { - /* - * Resolve URI... - */ - - if (!_httpResolveURI(value, resolved, sizeof(resolved), _HTTP_RESOLVE_DEFAULT, NULL, NULL)) - return (0); - - value = resolved; - } - - if (httpSeparateURI(HTTP_URI_CODING_ALL, value, v->scheme, sizeof(v->scheme), v->username, sizeof(v->username), v->host, sizeof(v->host), &(v->port), v->resource, sizeof(v->resource)) < HTTP_URI_STATUS_OK) - return (0); - - if (v->username[0]) - { - if ((v->password = strchr(v->username, ':')) != NULL) - *(v->password)++ = '\0'; - } - - snprintf(v->portstr, sizeof(v->portstr), "%d", v->port); - - if (v->uri) - free(v->uri); - httpAssembleURI(HTTP_URI_CODING_ALL, uri, sizeof(uri), v->scheme, NULL, v->host, v->port, v->resource); - v->uri = strdup(uri); + ret &= cupsFilePutChar(file->fp, '\"'); + file->column ++; - return (v->uri != NULL); - } - else - { - v->num_vars = cupsAddOption(name, value, v->num_vars, &v->vars); - return (1); - } + return (ret); } -#endif // 0 diff --git a/cups/ipp-private.h b/cups/ipp-private.h index 80f039b75..8dee93d0d 100644 --- a/cups/ipp-private.h +++ b/cups/ipp-private.h @@ -1,162 +1,148 @@ -/* - * Private IPP definitions for CUPS. - * - * Copyright © 2021 by OpenPrinting. - * Copyright © 2007-2018 by Apple Inc. - * Copyright © 1997-2006 by Easy Software Products. - * - * Licensed under Apache License v2.0. See the file "LICENSE" for more - * information. - */ +// +// Private IPP definitions for CUPS. +// +// Copyright © 2021-2022 by OpenPrinting. +// Copyright © 2007-2018 by Apple Inc. +// Copyright © 1997-2006 by Easy Software Products. +// +// Licensed under Apache License v2.0. See the file "LICENSE" for more +// information. +// #ifndef _CUPS_IPP_PRIVATE_H_ # define _CUPS_IPP_PRIVATE_H_ # include "cups.h" # ifdef __cplusplus extern "C" { -# endif /* __cplusplus */ +# endif // __cplusplus -/* - * Constants... - */ +// +// Constants... +// # define IPP_BUF_SIZE (IPP_MAX_LENGTH + 2) - /* Size of buffer */ + // Size of buffer -/* - * Structures... - */ +// +// Structures... +// -typedef union _ipp_request_u /**** Request Header ****/ +typedef union _ipp_request_u // Request Header { - struct /* Any Header */ + struct // Any Header { - ipp_uchar_t version[2]; /* Protocol version number */ + ipp_uchar_t version[2]; // Protocol version number int op_status; /* Operation ID or status code*/ - int request_id; /* Request ID */ + int request_id; // Request ID } any; - struct /* Operation Header */ + struct // Operation Header { - ipp_uchar_t version[2]; /* Protocol version number */ - ipp_op_t operation_id; /* Operation ID */ - int request_id; /* Request ID */ + ipp_uchar_t version[2]; // Protocol version number + ipp_op_t operation_id; // Operation ID + int request_id; // Request ID } op; - struct /* Status Header */ + struct // Status Header { - ipp_uchar_t version[2]; /* Protocol version number */ - ipp_status_t status_code; /* Status code */ - int request_id; /* Request ID */ + ipp_uchar_t version[2]; // Protocol version number + ipp_status_t status_code; // Status code + int request_id; // Request ID } status; - /**** New in CUPS 1.1.19 ****/ - struct /* Event Header */ + struct // Event Header { - ipp_uchar_t version[2]; /* Protocol version number */ - ipp_status_t status_code; /* Status code */ - int request_id; /* Request ID */ + ipp_uchar_t version[2]; // Protocol version number + ipp_status_t status_code; // Status code + int request_id; // Request ID } event; } _ipp_request_t; -typedef union _ipp_value_u /**** Attribute Value ****/ +typedef union _ipp_value_u // Attribute Value { - int integer; /* Integer/enumerated value */ + int integer; // Integer/enumerated value - bool boolean; /* Boolean value */ + bool boolean; // Boolean value - ipp_t *collection; /* Collection value */ + ipp_t *collection; // Collection value - ipp_uchar_t date[11]; /* Date/time value */ + ipp_uchar_t date[11]; // Date/time value struct { - int xres, /* Horizontal resolution */ - yres; /* Vertical resolution */ - ipp_res_t units; /* Resolution units */ - } resolution; /* Resolution value */ + int xres, // Horizontal resolution + yres; // Vertical resolution + ipp_res_t units; // Resolution units + } resolution; // Resolution value struct { - int lower, /* Lower value */ - upper; /* Upper value */ - } range; /* Range of integers value */ + int lower, // Lower value + upper; // Upper value + } range; // Range of integers value struct { - char *language; /* Language code */ - char *text; /* String */ - } string; /* String with language value */ + char *language; // Language code + char *text; // String + } string; // String with language value struct { - size_t length; /* Length of attribute */ - void *data; /* Data in attribute */ - } unknown; /* Unknown attribute type */ + size_t length; // Length of attribute + void *data; // Data in attribute + } unknown; // Unknown attribute type } _ipp_value_t; -struct _ipp_attribute_s /**** IPP attribute ****/ +struct _ipp_attribute_s // IPP attribute { - ipp_attribute_t *next; /* Next attribute in list */ - ipp_tag_t group_tag, /* Job/Printer/Operation group tag */ - value_tag; /* What type of value is it? */ - char *name; /* Name of attribute */ - size_t num_values; /* Number of values */ - _ipp_value_t values[1]; /* Values */ + ipp_attribute_t *next; // Next attribute in list + ipp_tag_t group_tag, // Job/Printer/Operation group tag + value_tag; // What type of value is it? + char *name; // Name of attribute + size_t num_values; // Number of values + _ipp_value_t values[1]; // Values }; -struct _ipp_s /**** IPP Request/Response/Notification ****/ +struct _ipp_s // IPP Request/Response/Notification { - ipp_state_t state; /* State of request */ - _ipp_request_t request; /* Request header */ - ipp_attribute_t *attrs; /* Attributes */ - ipp_attribute_t *last; /* Last attribute in list */ - ipp_attribute_t *current; /* Current attribute (for read/write) */ - ipp_tag_t curtag; /* Current attribute group tag */ - - ipp_attribute_t *prev; /* Previous attribute (for read) */ - int use; /* Use count @since CUPS 1.4.4.?@ */ - bool atend; /* At end of list? */ - size_t curindex; /* Current attribute index for hierarchical search */ + ipp_state_t state; // State of request + _ipp_request_t request; // Request header + ipp_attribute_t *attrs; // Attributes + ipp_attribute_t *last; // Last attribute in list + ipp_attribute_t *current; // Current attribute (for read/write) + ipp_tag_t curtag; // Current attribute group tag + + ipp_attribute_t *prev; // Previous attribute (for read) + size_t use; // Use count + bool atend; // At end of list? + size_t curindex; // Current attribute index for hierarchical search }; -typedef struct _ipp_option_s /**** Attribute mapping data ****/ +typedef struct _ipp_option_s // Attribute mapping data { - int multivalue; /* Option has multiple values? */ - const char *name; /* Option/attribute name */ - ipp_tag_t value_tag; /* Value tag for this attribute */ - ipp_tag_t group_tag; /* Group tag for this attribute */ - ipp_tag_t alt_group_tag; /* Alternate group tag for this attribute */ - const ipp_op_t *operations; /* Allowed operations for this attr */ + int multivalue; // Option has multiple values? + const char *name; // Option/attribute name + ipp_tag_t value_tag; // Value tag for this attribute + ipp_tag_t group_tag; // Group tag for this attribute + ipp_tag_t alt_group_tag; // Alternate group tag for this attribute + const ipp_op_t *operations; // Allowed operations for this attr } _ipp_option_t; -/* - * Prototypes for private functions... - */ +// +// Prototypes for private functions... +// -/* encode.c */ #ifdef DEBUG extern const char *_ippCheckOptions(void) _CUPS_PRIVATE; -#endif /* DEBUG */ +#endif // DEBUG extern _ipp_option_t *_ippFindOption(const char *name) _CUPS_PRIVATE; -/* ipp-file.c */ -extern ipp_t *_ippFileParse(_ipp_vars_t *v, const char *filename, void *user_data) _CUPS_PRIVATE; -extern int _ippFileReadToken(_ipp_file_t *f, char *token, size_t tokensize) _CUPS_PRIVATE; - -/* ipp-vars.c */ -extern void _ippVarsDeinit(_ipp_vars_t *v) _CUPS_PRIVATE; -extern void _ippVarsExpand(_ipp_vars_t *v, char *dst, const char *src, size_t dstsize) _CUPS_NONNULL(1,2,3) _CUPS_PRIVATE; -extern const char *_ippVarsGet(_ipp_vars_t *v, const char *name) _CUPS_PRIVATE; -extern void _ippVarsInit(_ipp_vars_t *v, _ipp_fattr_cb_t attrcb, _ipp_ferror_cb_t errorcb, _ipp_ftoken_cb_t tokencb) _CUPS_PRIVATE; -extern const char *_ippVarsPasswordCB(const char *prompt, http_t *http, const char *method, const char *resource, void *user_data) _CUPS_PRIVATE; -extern int _ippVarsSet(_ipp_vars_t *v, const char *name, const char *value) _CUPS_PRIVATE; - # ifdef __cplusplus } -# endif /* __cplusplus */ -#endif /* !_CUPS_IPP_H_ */ +# endif // __cplusplus +#endif // !_CUPS_IPP_H_ diff --git a/cups/ipp-support.c b/cups/ipp-support.c index 59243ee62..cd9bb5934 100644 --- a/cups/ipp-support.c +++ b/cups/ipp-support.c @@ -621,7 +621,7 @@ static size_t ipp_col_string(ipp_t *col, char *buffer, size_t bufsize); * just like (v)snprintf. */ -size_t /* O - Number of bytes less nul */ +size_t /* O - Number of bytes less `nul` */ ippAttributeString( ipp_attribute_t *attr, /* I - Attribute */ char *buffer, /* I - String buffer or NULL */ diff --git a/cups/ipp.h b/cups/ipp.h index bbe275114..b51c7a7fb 100644 --- a/cups/ipp.h +++ b/cups/ipp.h @@ -1,13 +1,13 @@ -/* - * Internet Printing Protocol definitions for CUPS. - * - * Copyright © 2021 by OpenPrinting. - * Copyright © 2007-2018 by Apple Inc. - * Copyright © 1997-2006 by Easy Software Products. - * - * Licensed under Apache License v2.0. See the file "LICENSE" for more - * information. - */ +// +// Internet Printing Protocol definitions for CUPS. +// +// Copyright © 2021-2022 by OpenPrinting. +// Copyright © 2007-2018 by Apple Inc. +// Copyright © 1997-2006 by Easy Software Products. +// +// Licensed under Apache License v2.0. See the file "LICENSE" for more +// information. +// #ifndef _CUPS_IPP_H_ # define _CUPS_IPP_H_ @@ -15,42 +15,42 @@ # include # ifdef __cplusplus extern "C" { -# endif /* __cplusplus */ +# endif // __cplusplus -/* - * IPP version string... - */ +// +// IPP version string... +// # define IPP_VERSION "\002\001" -/* - * IPP registered port number... - * - * Note: Applications should never use IPP_PORT, but instead use `ippPort()` to - * allow overrides via the `IPP_PORT` environment variable and services file if - * needed. - */ +// +// IPP registered port number... +// +// Note: Applications should never use IPP_PORT, but instead use `ippPort()` to +// allow overrides via the `IPP_PORT` environment variable and services file if +// needed. +// # define IPP_PORT 631 -/* - * Common limits... - */ +// +// Common limits... +// -# define IPP_MAX_CHARSET 64 /* Maximum length of charset values w/nul */ -# define IPP_MAX_KEYWORD 256 /* Maximum length of keyword values w/nul */ -# define IPP_MAX_LANGUAGE 64 /* Maximum length of naturalLanguage values w/nul */ -# define IPP_MAX_LENGTH 32767 /* Maximum size of any single value */ -# define IPP_MAX_MIMETYPE 256 /* Maximum length of mimeMediaType values w/nul */ -# define IPP_MAX_NAME 256 /* Maximum length of common name values w/nul */ -# define IPP_MAX_OCTETSTRING 1023 /* Maximum length of octetString values w/o nul */ -# define IPP_MAX_TEXT 1024 /* Maximum length of text values w/nul */ -# define IPP_MAX_URI 1024 /* Maximum length of uri values w/nul */ -# define IPP_MAX_URISCHEME 64 /* Maximum length of uriScheme values w/nul */ -# define IPP_MAX_VALUES 8 /* Power-of-2 allocation increment */ +# define IPP_MAX_CHARSET 64 // Maximum length of charset values w/nul +# define IPP_MAX_KEYWORD 256 // Maximum length of keyword values w/nul +# define IPP_MAX_LANGUAGE 64 // Maximum length of naturalLanguage values w/nul +# define IPP_MAX_LENGTH 32767 // Maximum size of any single value +# define IPP_MAX_MIMETYPE 256 // Maximum length of mimeMediaType values w/nul +# define IPP_MAX_NAME 256 // Maximum length of common name values w/nul +# define IPP_MAX_OCTETSTRING 1023 // Maximum length of octetString values w/o nul +# define IPP_MAX_TEXT 1024 // Maximum length of text values w/nul +# define IPP_MAX_URI 1024 // Maximum length of uri values w/nul +# define IPP_MAX_URISCHEME 64 // Maximum length of uriScheme values w/nul +# define IPP_MAX_VALUES 8 // Power-of-2 allocation increment /* @@ -61,460 +61,460 @@ extern "C" { # define IPP_CONST_TAG(x) (ipp_tag_t)(IPP_TAG_CUPS_CONST | (x)) -/* - * Types and structures... - */ +// +// Types and structures... +// -typedef enum ipp_dstate_e /**** "document-state" values ****/ +typedef enum ipp_dstate_e // "document-state" values { - IPP_DSTATE_PENDING = 3, /* Document is pending */ - IPP_DSTATE_PROCESSING = 5, /* Document is processing */ - IPP_DSTATE_CANCELED = 7, /* Document is canceled */ - IPP_DSTATE_ABORTED, /* Document is aborted */ - IPP_DSTATE_COMPLETED /* Document is completed */ + IPP_DSTATE_PENDING = 3, // Document is pending + IPP_DSTATE_PROCESSING = 5, // Document is processing + IPP_DSTATE_CANCELED = 7, // Document is canceled + IPP_DSTATE_ABORTED, // Document is aborted + IPP_DSTATE_COMPLETED // Document is completed } ipp_dstate_t; -typedef enum ipp_finishings_e /**** "finishings" values ****/ +typedef enum ipp_finishings_e // "finishings" values { - IPP_FINISHINGS_NONE = 3, /* No finishing */ - IPP_FINISHINGS_STAPLE, /* Staple (any location/method) */ - IPP_FINISHINGS_PUNCH, /* Punch (any location/count) */ - IPP_FINISHINGS_COVER, /* Add cover */ - IPP_FINISHINGS_BIND, /* Bind */ - IPP_FINISHINGS_SADDLE_STITCH, /* Staple interior */ - IPP_FINISHINGS_EDGE_STITCH, /* Stitch along any side */ - IPP_FINISHINGS_FOLD, /* Fold (any type) */ - IPP_FINISHINGS_TRIM, /* Trim (any type) */ - IPP_FINISHINGS_BALE, /* Bale (any type) */ - IPP_FINISHINGS_BOOKLET_MAKER, /* Fold to make booklet */ - IPP_FINISHINGS_JOG_OFFSET, /* Offset for binding (any type) */ - IPP_FINISHINGS_COAT, /* Apply protective liquid or powder coating */ - IPP_FINISHINGS_LAMINATE, /* Apply protective (solid) material */ - IPP_FINISHINGS_STAPLE_TOP_LEFT = 20, /* Staple top left corner */ - IPP_FINISHINGS_STAPLE_BOTTOM_LEFT, /* Staple bottom left corner */ - IPP_FINISHINGS_STAPLE_TOP_RIGHT, /* Staple top right corner */ - IPP_FINISHINGS_STAPLE_BOTTOM_RIGHT, /* Staple bottom right corner */ - IPP_FINISHINGS_EDGE_STITCH_LEFT, /* Stitch along left side */ - IPP_FINISHINGS_EDGE_STITCH_TOP, /* Stitch along top edge */ - IPP_FINISHINGS_EDGE_STITCH_RIGHT, /* Stitch along right side */ - IPP_FINISHINGS_EDGE_STITCH_BOTTOM, /* Stitch along bottom edge */ - IPP_FINISHINGS_STAPLE_DUAL_LEFT, /* Two staples on left */ - IPP_FINISHINGS_STAPLE_DUAL_TOP, /* Two staples on top */ - IPP_FINISHINGS_STAPLE_DUAL_RIGHT, /* Two staples on right */ - IPP_FINISHINGS_STAPLE_DUAL_BOTTOM, /* Two staples on bottom */ - IPP_FINISHINGS_STAPLE_TRIPLE_LEFT, /* Three staples on left */ - IPP_FINISHINGS_STAPLE_TRIPLE_TOP, /* Three staples on top */ - IPP_FINISHINGS_STAPLE_TRIPLE_RIGHT, /* Three staples on right */ - IPP_FINISHINGS_STAPLE_TRIPLE_BOTTOM, /* Three staples on bottom */ - IPP_FINISHINGS_BIND_LEFT = 50, /* Bind on left */ - IPP_FINISHINGS_BIND_TOP, /* Bind on top */ - IPP_FINISHINGS_BIND_RIGHT, /* Bind on right */ - IPP_FINISHINGS_BIND_BOTTOM, /* Bind on bottom */ - IPP_FINISHINGS_TRIM_AFTER_PAGES = 60, /* Trim output after each page */ - IPP_FINISHINGS_TRIM_AFTER_DOCUMENTS, /* Trim output after each document */ - IPP_FINISHINGS_TRIM_AFTER_COPIES, /* Trim output after each copy */ - IPP_FINISHINGS_TRIM_AFTER_JOB, /* Trim output after job */ - IPP_FINISHINGS_PUNCH_TOP_LEFT = 70, /* Punch 1 hole top left */ - IPP_FINISHINGS_PUNCH_BOTTOM_LEFT, /* Punch 1 hole bottom left */ - IPP_FINISHINGS_PUNCH_TOP_RIGHT, /* Punch 1 hole top right */ - IPP_FINISHINGS_PUNCH_BOTTOM_RIGHT, /* Punch 1 hole bottom right */ - IPP_FINISHINGS_PUNCH_DUAL_LEFT, /* Punch 2 holes left side */ - IPP_FINISHINGS_PUNCH_DUAL_TOP, /* Punch 2 holes top edge */ - IPP_FINISHINGS_PUNCH_DUAL_RIGHT, /* Punch 2 holes right side */ - IPP_FINISHINGS_PUNCH_DUAL_BOTTOM, /* Punch 2 holes bottom edge */ - IPP_FINISHINGS_PUNCH_TRIPLE_LEFT, /* Punch 3 holes left side */ - IPP_FINISHINGS_PUNCH_TRIPLE_TOP, /* Punch 3 holes top edge */ - IPP_FINISHINGS_PUNCH_TRIPLE_RIGHT, /* Punch 3 holes right side */ - IPP_FINISHINGS_PUNCH_TRIPLE_BOTTOM, /* Punch 3 holes bottom edge */ - IPP_FINISHINGS_PUNCH_QUAD_LEFT, /* Punch 4 holes left side */ - IPP_FINISHINGS_PUNCH_QUAD_TOP, /* Punch 4 holes top edge */ - IPP_FINISHINGS_PUNCH_QUAD_RIGHT, /* Punch 4 holes right side */ - IPP_FINISHINGS_PUNCH_QUAD_BOTTOM, /* Punch 4 holes bottom edge */ - IPP_FINISHINGS_PUNCH_MULTIPLE_LEFT, /* Punch multiple holes left side */ - IPP_FINISHINGS_PUNCH_MULTIPLE_TOP, /* Punch multiple holes top edge */ - IPP_FINISHINGS_PUNCH_MULTIPLE_RIGHT, /* Punch multiple holes right side */ - IPP_FINISHINGS_PUNCH_MULTIPLE_BOTTOM, /* Punch multiple holes bottom edge */ - IPP_FINISHINGS_FOLD_ACCORDION = 90, /* Accordion-fold the paper vertically into four sections */ - IPP_FINISHINGS_FOLD_DOUBLE_GATE, /* Fold the top and bottom quarters of the paper towards the midline, then fold in half vertically */ - IPP_FINISHINGS_FOLD_GATE, /* Fold the top and bottom quarters of the paper towards the midline */ - IPP_FINISHINGS_FOLD_HALF, /* Fold the paper in half vertically */ - IPP_FINISHINGS_FOLD_HALF_Z, /* Fold the paper in half horizontally, then Z-fold the paper vertically */ - IPP_FINISHINGS_FOLD_LEFT_GATE, /* Fold the top quarter of the paper towards the midline */ + IPP_FINISHINGS_NONE = 3, // No finishing + IPP_FINISHINGS_STAPLE, // Staple (any location/method) + IPP_FINISHINGS_PUNCH, // Punch (any location/count) + IPP_FINISHINGS_COVER, // Add cover + IPP_FINISHINGS_BIND, // Bind + IPP_FINISHINGS_SADDLE_STITCH, // Staple interior + IPP_FINISHINGS_EDGE_STITCH, // Stitch along any side + IPP_FINISHINGS_FOLD, // Fold (any type) + IPP_FINISHINGS_TRIM, // Trim (any type) + IPP_FINISHINGS_BALE, // Bale (any type) + IPP_FINISHINGS_BOOKLET_MAKER, // Fold to make booklet + IPP_FINISHINGS_JOG_OFFSET, // Offset for binding (any type) + IPP_FINISHINGS_COAT, // Apply protective liquid or powder coating + IPP_FINISHINGS_LAMINATE, // Apply protective (solid) material + IPP_FINISHINGS_STAPLE_TOP_LEFT = 20, // Staple top left corner + IPP_FINISHINGS_STAPLE_BOTTOM_LEFT, // Staple bottom left corner + IPP_FINISHINGS_STAPLE_TOP_RIGHT, // Staple top right corner + IPP_FINISHINGS_STAPLE_BOTTOM_RIGHT, // Staple bottom right corner + IPP_FINISHINGS_EDGE_STITCH_LEFT, // Stitch along left side + IPP_FINISHINGS_EDGE_STITCH_TOP, // Stitch along top edge + IPP_FINISHINGS_EDGE_STITCH_RIGHT, // Stitch along right side + IPP_FINISHINGS_EDGE_STITCH_BOTTOM, // Stitch along bottom edge + IPP_FINISHINGS_STAPLE_DUAL_LEFT, // Two staples on left + IPP_FINISHINGS_STAPLE_DUAL_TOP, // Two staples on top + IPP_FINISHINGS_STAPLE_DUAL_RIGHT, // Two staples on right + IPP_FINISHINGS_STAPLE_DUAL_BOTTOM, // Two staples on bottom + IPP_FINISHINGS_STAPLE_TRIPLE_LEFT, // Three staples on left + IPP_FINISHINGS_STAPLE_TRIPLE_TOP, // Three staples on top + IPP_FINISHINGS_STAPLE_TRIPLE_RIGHT, // Three staples on right + IPP_FINISHINGS_STAPLE_TRIPLE_BOTTOM, // Three staples on bottom + IPP_FINISHINGS_BIND_LEFT = 50, // Bind on left + IPP_FINISHINGS_BIND_TOP, // Bind on top + IPP_FINISHINGS_BIND_RIGHT, // Bind on right + IPP_FINISHINGS_BIND_BOTTOM, // Bind on bottom + IPP_FINISHINGS_TRIM_AFTER_PAGES = 60, // Trim output after each page + IPP_FINISHINGS_TRIM_AFTER_DOCUMENTS, // Trim output after each document + IPP_FINISHINGS_TRIM_AFTER_COPIES, // Trim output after each copy + IPP_FINISHINGS_TRIM_AFTER_JOB, // Trim output after job + IPP_FINISHINGS_PUNCH_TOP_LEFT = 70, // Punch 1 hole top left + IPP_FINISHINGS_PUNCH_BOTTOM_LEFT, // Punch 1 hole bottom left + IPP_FINISHINGS_PUNCH_TOP_RIGHT, // Punch 1 hole top right + IPP_FINISHINGS_PUNCH_BOTTOM_RIGHT, // Punch 1 hole bottom right + IPP_FINISHINGS_PUNCH_DUAL_LEFT, // Punch 2 holes left side + IPP_FINISHINGS_PUNCH_DUAL_TOP, // Punch 2 holes top edge + IPP_FINISHINGS_PUNCH_DUAL_RIGHT, // Punch 2 holes right side + IPP_FINISHINGS_PUNCH_DUAL_BOTTOM, // Punch 2 holes bottom edge + IPP_FINISHINGS_PUNCH_TRIPLE_LEFT, // Punch 3 holes left side + IPP_FINISHINGS_PUNCH_TRIPLE_TOP, // Punch 3 holes top edge + IPP_FINISHINGS_PUNCH_TRIPLE_RIGHT, // Punch 3 holes right side + IPP_FINISHINGS_PUNCH_TRIPLE_BOTTOM, // Punch 3 holes bottom edge + IPP_FINISHINGS_PUNCH_QUAD_LEFT, // Punch 4 holes left side + IPP_FINISHINGS_PUNCH_QUAD_TOP, // Punch 4 holes top edge + IPP_FINISHINGS_PUNCH_QUAD_RIGHT, // Punch 4 holes right side + IPP_FINISHINGS_PUNCH_QUAD_BOTTOM, // Punch 4 holes bottom edge + IPP_FINISHINGS_PUNCH_MULTIPLE_LEFT, // Punch multiple holes left side + IPP_FINISHINGS_PUNCH_MULTIPLE_TOP, // Punch multiple holes top edge + IPP_FINISHINGS_PUNCH_MULTIPLE_RIGHT, // Punch multiple holes right side + IPP_FINISHINGS_PUNCH_MULTIPLE_BOTTOM, // Punch multiple holes bottom edge + IPP_FINISHINGS_FOLD_ACCORDION = 90, // Accordion-fold the paper vertically into four sections + IPP_FINISHINGS_FOLD_DOUBLE_GATE, // Fold the top and bottom quarters of the paper towards the midline, then fold in half vertically + IPP_FINISHINGS_FOLD_GATE, // Fold the top and bottom quarters of the paper towards the midline + IPP_FINISHINGS_FOLD_HALF, // Fold the paper in half vertically + IPP_FINISHINGS_FOLD_HALF_Z, // Fold the paper in half horizontally, then Z-fold the paper vertically + IPP_FINISHINGS_FOLD_LEFT_GATE, // Fold the top quarter of the paper towards the midline IPP_FINISHINGS_FOLD_LETTER, /* Fold the paper into three sections vertically; sometimes also known as a C fold*/ - IPP_FINISHINGS_FOLD_PARALLEL, /* Fold the paper in half vertically two times, yielding four sections */ - IPP_FINISHINGS_FOLD_POSTER, /* Fold the paper in half horizontally and vertically; sometimes also called a cross fold */ - IPP_FINISHINGS_FOLD_RIGHT_GATE, /* Fold the bottom quarter of the paper towards the midline */ - IPP_FINISHINGS_FOLD_Z, /* Fold the paper vertically into three sections, forming a Z */ - IPP_FINISHINGS_FOLD_ENGINEERING_Z, /* Fold the paper vertically into two small sections and one larger, forming an elongated Z */ + IPP_FINISHINGS_FOLD_PARALLEL, // Fold the paper in half vertically two times, yielding four sections + IPP_FINISHINGS_FOLD_POSTER, // Fold the paper in half horizontally and vertically; sometimes also called a cross fold + IPP_FINISHINGS_FOLD_RIGHT_GATE, // Fold the bottom quarter of the paper towards the midline + IPP_FINISHINGS_FOLD_Z, // Fold the paper vertically into three sections, forming a Z + IPP_FINISHINGS_FOLD_ENGINEERING_Z, // Fold the paper vertically into two small sections and one larger, forming an elongated Z - /* CUPS extensions for finishings (pre-standard versions of values above) */ + // CUPS extensions for finishings (pre-standard versions of values above) IPP_FINISHINGS_CUPS_PUNCH_TOP_LEFT = 0x40000046, - /* Punch 1 hole top left @exclude all@ */ - IPP_FINISHINGS_CUPS_PUNCH_BOTTOM_LEFT,/* Punch 1 hole bottom left @exclude all@ */ - IPP_FINISHINGS_CUPS_PUNCH_TOP_RIGHT, /* Punch 1 hole top right @exclude all@ */ + // Punch 1 hole top left @exclude all@ + IPP_FINISHINGS_CUPS_PUNCH_BOTTOM_LEFT,// Punch 1 hole bottom left @exclude all@ + IPP_FINISHINGS_CUPS_PUNCH_TOP_RIGHT, // Punch 1 hole top right @exclude all@ IPP_FINISHINGS_CUPS_PUNCH_BOTTOM_RIGHT, - /* Punch 1 hole bottom right @exclude all@ */ - IPP_FINISHINGS_CUPS_PUNCH_DUAL_LEFT, /* Punch 2 holes left side @exclude all@ */ - IPP_FINISHINGS_CUPS_PUNCH_DUAL_TOP, /* Punch 2 holes top edge @exclude all@ */ - IPP_FINISHINGS_CUPS_PUNCH_DUAL_RIGHT, /* Punch 2 holes right side @exclude all@ */ - IPP_FINISHINGS_CUPS_PUNCH_DUAL_BOTTOM,/* Punch 2 holes bottom edge @exclude all@ */ - IPP_FINISHINGS_CUPS_PUNCH_TRIPLE_LEFT,/* Punch 3 holes left side @exclude all@ */ - IPP_FINISHINGS_CUPS_PUNCH_TRIPLE_TOP, /* Punch 3 holes top edge @exclude all@ */ + // Punch 1 hole bottom right @exclude all@ + IPP_FINISHINGS_CUPS_PUNCH_DUAL_LEFT, // Punch 2 holes left side @exclude all@ + IPP_FINISHINGS_CUPS_PUNCH_DUAL_TOP, // Punch 2 holes top edge @exclude all@ + IPP_FINISHINGS_CUPS_PUNCH_DUAL_RIGHT, // Punch 2 holes right side @exclude all@ + IPP_FINISHINGS_CUPS_PUNCH_DUAL_BOTTOM,// Punch 2 holes bottom edge @exclude all@ + IPP_FINISHINGS_CUPS_PUNCH_TRIPLE_LEFT,// Punch 3 holes left side @exclude all@ + IPP_FINISHINGS_CUPS_PUNCH_TRIPLE_TOP, // Punch 3 holes top edge @exclude all@ IPP_FINISHINGS_CUPS_PUNCH_TRIPLE_RIGHT, - /* Punch 3 holes right side @exclude all@ */ + // Punch 3 holes right side @exclude all@ IPP_FINISHINGS_CUPS_PUNCH_TRIPLE_BOTTOM, - /* Punch 3 holes bottom edge @exclude all@ */ - IPP_FINISHINGS_CUPS_PUNCH_QUAD_LEFT, /* Punch 4 holes left side @exclude all@ */ - IPP_FINISHINGS_CUPS_PUNCH_QUAD_TOP, /* Punch 4 holes top edge @exclude all@ */ - IPP_FINISHINGS_CUPS_PUNCH_QUAD_RIGHT, /* Punch 4 holes right side @exclude all@ */ - IPP_FINISHINGS_CUPS_PUNCH_QUAD_BOTTOM,/* Punch 4 holes bottom edge @exclude all@ */ + // Punch 3 holes bottom edge @exclude all@ + IPP_FINISHINGS_CUPS_PUNCH_QUAD_LEFT, // Punch 4 holes left side @exclude all@ + IPP_FINISHINGS_CUPS_PUNCH_QUAD_TOP, // Punch 4 holes top edge @exclude all@ + IPP_FINISHINGS_CUPS_PUNCH_QUAD_RIGHT, // Punch 4 holes right side @exclude all@ + IPP_FINISHINGS_CUPS_PUNCH_QUAD_BOTTOM,// Punch 4 holes bottom edge @exclude all@ IPP_FINISHINGS_CUPS_FOLD_ACCORDION = 0x4000005A, - /* Accordion-fold the paper vertically into four sections @exclude all@ */ - IPP_FINISHINGS_CUPS_FOLD_DOUBLE_GATE, /* Fold the top and bottom quarters of the paper towards the midline, then fold in half vertically @exclude all@ */ - IPP_FINISHINGS_CUPS_FOLD_GATE, /* Fold the top and bottom quarters of the paper towards the midline @exclude all@ */ - IPP_FINISHINGS_CUPS_FOLD_HALF, /* Fold the paper in half vertically @exclude all@ */ - IPP_FINISHINGS_CUPS_FOLD_HALF_Z, /* Fold the paper in half horizontally, then Z-fold the paper vertically @exclude all@ */ - IPP_FINISHINGS_CUPS_FOLD_LEFT_GATE, /* Fold the top quarter of the paper towards the midline @exclude all@ */ - IPP_FINISHINGS_CUPS_FOLD_LETTER, /* Fold the paper into three sections vertically; sometimes also known as a C fold @exclude all@ */ - IPP_FINISHINGS_CUPS_FOLD_PARALLEL, /* Fold the paper in half vertically two times, yielding four sections @exclude all@ */ - IPP_FINISHINGS_CUPS_FOLD_POSTER, /* Fold the paper in half horizontally and vertically; sometimes also called a cross fold @exclude all@ */ - IPP_FINISHINGS_CUPS_FOLD_RIGHT_GATE, /* Fold the bottom quarter of the paper towards the midline @exclude all@ */ - IPP_FINISHINGS_CUPS_FOLD_Z /* Fold the paper vertically into three sections, forming a Z @exclude all@ */ + // Accordion-fold the paper vertically into four sections @exclude all@ + IPP_FINISHINGS_CUPS_FOLD_DOUBLE_GATE, // Fold the top and bottom quarters of the paper towards the midline, then fold in half vertically @exclude all@ + IPP_FINISHINGS_CUPS_FOLD_GATE, // Fold the top and bottom quarters of the paper towards the midline @exclude all@ + IPP_FINISHINGS_CUPS_FOLD_HALF, // Fold the paper in half vertically @exclude all@ + IPP_FINISHINGS_CUPS_FOLD_HALF_Z, // Fold the paper in half horizontally, then Z-fold the paper vertically @exclude all@ + IPP_FINISHINGS_CUPS_FOLD_LEFT_GATE, // Fold the top quarter of the paper towards the midline @exclude all@ + IPP_FINISHINGS_CUPS_FOLD_LETTER, // Fold the paper into three sections vertically; sometimes also known as a C fold @exclude all@ + IPP_FINISHINGS_CUPS_FOLD_PARALLEL, // Fold the paper in half vertically two times, yielding four sections @exclude all@ + IPP_FINISHINGS_CUPS_FOLD_POSTER, // Fold the paper in half horizontally and vertically; sometimes also called a cross fold @exclude all@ + IPP_FINISHINGS_CUPS_FOLD_RIGHT_GATE, // Fold the bottom quarter of the paper towards the midline @exclude all@ + IPP_FINISHINGS_CUPS_FOLD_Z // Fold the paper vertically into three sections, forming a Z @exclude all@ } ipp_finishings_t; -typedef enum ipp_jstate_e /**** "job-state" values ****/ +typedef enum ipp_jstate_e // "job-state" values { - IPP_JSTATE_PENDING = 3, /* Job is waiting to be printed */ - IPP_JSTATE_HELD, /* Job is held for printing */ - IPP_JSTATE_PROCESSING, /* Job is currently printing */ - IPP_JSTATE_STOPPED, /* Job has been stopped */ - IPP_JSTATE_CANCELED, /* Job has been canceled */ - IPP_JSTATE_ABORTED, /* Job has aborted due to error */ - IPP_JSTATE_COMPLETED /* Job has completed successfully */ + IPP_JSTATE_PENDING = 3, // Job is waiting to be printed + IPP_JSTATE_HELD, // Job is held for printing + IPP_JSTATE_PROCESSING, // Job is currently printing + IPP_JSTATE_STOPPED, // Job has been stopped + IPP_JSTATE_CANCELED, // Job has been canceled + IPP_JSTATE_ABORTED, // Job has aborted due to error + IPP_JSTATE_COMPLETED // Job has completed successfully } ipp_jstate_t; -typedef enum ipp_op_e /**** IPP operations ****/ +typedef enum ipp_op_e // IPP operations { - IPP_OP_CUPS_INVALID = -1, /* Invalid operation name for @link ippOpValue@ */ - IPP_OP_CUPS_NONE = 0, /* No operation @private@ */ - IPP_OP_PRINT_JOB = 0x0002, /* Print-Job: Print a single file */ - IPP_OP_PRINT_URI, /* Print-URI: Print a single URL @exclude all@ */ - IPP_OP_VALIDATE_JOB, /* Validate-Job: Validate job values prior to submission */ - IPP_OP_CREATE_JOB, /* Create-Job: Create an empty print job */ - IPP_OP_SEND_DOCUMENT, /* Send-Document: Add a file to a job */ - IPP_OP_SEND_URI, /* Send-URI: Add a URL to a job @exclude all@ */ - IPP_OP_CANCEL_JOB, /* Cancel-Job: Cancel a job */ - IPP_OP_GET_JOB_ATTRIBUTES, /* Get-Job-Attribute: Get information about a job */ - IPP_OP_GET_JOBS, /* Get-Jobs: Get a list of jobs */ - IPP_OP_GET_PRINTER_ATTRIBUTES, /* Get-Printer-Attributes: Get information about a printer */ - IPP_OP_HOLD_JOB, /* Hold-Job: Hold a job for printing */ - IPP_OP_RELEASE_JOB, /* Release-Job: Release a job for printing */ - IPP_OP_RESTART_JOB, /* Restart-Job: Reprint a job @deprecated@ */ - IPP_OP_PAUSE_PRINTER = 0x0010, /* Pause-Printer: Stop a printer */ - IPP_OP_RESUME_PRINTER, /* Resume-Printer: Start a printer */ - IPP_OP_PURGE_JOBS, /* Purge-Jobs: Delete all jobs @deprecated@ @exclude all@ */ - IPP_OP_SET_PRINTER_ATTRIBUTES, /* Set-Printer-Attributes: Set printer values */ - IPP_OP_SET_JOB_ATTRIBUTES, /* Set-Job-Attributes: Set job values */ - IPP_OP_GET_PRINTER_SUPPORTED_VALUES, /* Get-Printer-Supported-Values: Get supported values */ - IPP_OP_CREATE_PRINTER_SUBSCRIPTIONS, /* Create-Printer-Subscriptions: Create one or more printer subscriptions */ - IPP_OP_CREATE_JOB_SUBSCRIPTIONS, /* Create-Job-Subscriptions: Create one of more job subscriptions */ - IPP_OP_GET_SUBSCRIPTION_ATTRIBUTES, /* Get-Subscription-Attributes: Get subscription information */ - IPP_OP_GET_SUBSCRIPTIONS, /* Get-Subscriptions: Get list of subscriptions */ - IPP_OP_RENEW_SUBSCRIPTION, /* Renew-Subscription: Renew a printer subscription */ - IPP_OP_CANCEL_SUBSCRIPTION, /* Cancel-Subscription: Cancel a subscription */ - IPP_OP_GET_NOTIFICATIONS, /* Get-Notifications: Get notification events */ - IPP_OP_SEND_NOTIFICATIONS, /* Send-Notifications: Send notification events @private@ */ - IPP_OP_GET_RESOURCE_ATTRIBUTES, /* Get-Resource-Attributes: Get resource information @private@ */ - IPP_OP_GET_RESOURCE_DATA, /* Get-Resource-Data: Get resource data @private@ @deprecated@ */ - IPP_OP_GET_RESOURCES, /* Get-Resources: Get list of resources @private@ */ - IPP_OP_GET_PRINT_SUPPORT_FILES, /* Get-Printer-Support-Files: Get printer support files @private@ */ - IPP_OP_ENABLE_PRINTER, /* Enable-Printer: Accept new jobs for a printer */ - IPP_OP_DISABLE_PRINTER, /* Disable-Printer: Reject new jobs for a printer */ + IPP_OP_CUPS_INVALID = -1, // Invalid operation name for @link ippOpValue@ + IPP_OP_CUPS_NONE = 0, // No operation @private@ + IPP_OP_PRINT_JOB = 0x0002, // Print-Job: Print a single file + IPP_OP_PRINT_URI, // Print-URI: Print a single URL @exclude all@ + IPP_OP_VALIDATE_JOB, // Validate-Job: Validate job values prior to submission + IPP_OP_CREATE_JOB, // Create-Job: Create an empty print job + IPP_OP_SEND_DOCUMENT, // Send-Document: Add a file to a job + IPP_OP_SEND_URI, // Send-URI: Add a URL to a job @exclude all@ + IPP_OP_CANCEL_JOB, // Cancel-Job: Cancel a job + IPP_OP_GET_JOB_ATTRIBUTES, // Get-Job-Attribute: Get information about a job + IPP_OP_GET_JOBS, // Get-Jobs: Get a list of jobs + IPP_OP_GET_PRINTER_ATTRIBUTES, // Get-Printer-Attributes: Get information about a printer + IPP_OP_HOLD_JOB, // Hold-Job: Hold a job for printing + IPP_OP_RELEASE_JOB, // Release-Job: Release a job for printing + IPP_OP_RESTART_JOB, // Restart-Job: Reprint a job @deprecated@ + IPP_OP_PAUSE_PRINTER = 0x0010, // Pause-Printer: Stop a printer + IPP_OP_RESUME_PRINTER, // Resume-Printer: Start a printer + IPP_OP_PURGE_JOBS, // Purge-Jobs: Delete all jobs @deprecated@ @exclude all@ + IPP_OP_SET_PRINTER_ATTRIBUTES, // Set-Printer-Attributes: Set printer values + IPP_OP_SET_JOB_ATTRIBUTES, // Set-Job-Attributes: Set job values + IPP_OP_GET_PRINTER_SUPPORTED_VALUES, // Get-Printer-Supported-Values: Get supported values + IPP_OP_CREATE_PRINTER_SUBSCRIPTIONS, // Create-Printer-Subscriptions: Create one or more printer subscriptions + IPP_OP_CREATE_JOB_SUBSCRIPTIONS, // Create-Job-Subscriptions: Create one of more job subscriptions + IPP_OP_GET_SUBSCRIPTION_ATTRIBUTES, // Get-Subscription-Attributes: Get subscription information + IPP_OP_GET_SUBSCRIPTIONS, // Get-Subscriptions: Get list of subscriptions + IPP_OP_RENEW_SUBSCRIPTION, // Renew-Subscription: Renew a printer subscription + IPP_OP_CANCEL_SUBSCRIPTION, // Cancel-Subscription: Cancel a subscription + IPP_OP_GET_NOTIFICATIONS, // Get-Notifications: Get notification events + IPP_OP_SEND_NOTIFICATIONS, // Send-Notifications: Send notification events @private@ + IPP_OP_GET_RESOURCE_ATTRIBUTES, // Get-Resource-Attributes: Get resource information @private@ + IPP_OP_GET_RESOURCE_DATA, // Get-Resource-Data: Get resource data @private@ @deprecated@ + IPP_OP_GET_RESOURCES, // Get-Resources: Get list of resources @private@ + IPP_OP_GET_PRINT_SUPPORT_FILES, // Get-Printer-Support-Files: Get printer support files @private@ + IPP_OP_ENABLE_PRINTER, // Enable-Printer: Accept new jobs for a printer + IPP_OP_DISABLE_PRINTER, // Disable-Printer: Reject new jobs for a printer IPP_OP_PAUSE_PRINTER_AFTER_CURRENT_JOB, - /* Pause-Printer-After-Current-Job: Stop printer after the current job */ - IPP_OP_HOLD_NEW_JOBS, /* Hold-New-Jobs: Hold new jobs */ - IPP_OP_RELEASE_HELD_NEW_JOBS, /* Release-Held-New-Jobs: Release new jobs that were previously held */ - IPP_OP_DEACTIVATE_PRINTER, /* Deactivate-Printer: Stop a printer and do not accept jobs @deprecated@ @exclude all@ */ - IPP_OP_ACTIVATE_PRINTER, /* Activate-Printer: Start a printer and accept jobs @deprecated@ @exclude all@ */ - IPP_OP_RESTART_PRINTER, /* Restart-Printer: Restart a printer @exclude all@ */ - IPP_OP_SHUTDOWN_PRINTER, /* Shutdown-Printer: Turn a printer off @exclude all@ */ - IPP_OP_STARTUP_PRINTER, /* Startup-Printer: Turn a printer on @exclude all@ */ + // Pause-Printer-After-Current-Job: Stop printer after the current job + IPP_OP_HOLD_NEW_JOBS, // Hold-New-Jobs: Hold new jobs + IPP_OP_RELEASE_HELD_NEW_JOBS, // Release-Held-New-Jobs: Release new jobs that were previously held + IPP_OP_DEACTIVATE_PRINTER, // Deactivate-Printer: Stop a printer and do not accept jobs @deprecated@ @exclude all@ + IPP_OP_ACTIVATE_PRINTER, // Activate-Printer: Start a printer and accept jobs @deprecated@ @exclude all@ + IPP_OP_RESTART_PRINTER, // Restart-Printer: Restart a printer @exclude all@ + IPP_OP_SHUTDOWN_PRINTER, // Shutdown-Printer: Turn a printer off @exclude all@ + IPP_OP_STARTUP_PRINTER, // Startup-Printer: Turn a printer on @exclude all@ IPP_OP_REPROCESS_JOB, /* Reprocess-Job: Reprint a job @deprecated@ @exclude all@*/ - IPP_OP_CANCEL_CURRENT_JOB, /* Cancel-Current-Job: Cancel the current job */ - IPP_OP_SUSPEND_CURRENT_JOB, /* Suspend-Current-Job: Suspend the current job */ - IPP_OP_RESUME_JOB, /* Resume-Job: Resume the current job */ - IPP_OP_PROMOTE_JOB, /* Promote-Job: Promote a job to print sooner */ - IPP_OP_SCHEDULE_JOB_AFTER, /* Schedule-Job-After: Schedule a job to print after another */ - IPP_OP_CANCEL_DOCUMENT = 0x0033, /* Cancel-Document: Cancel a document @exclude all@ */ - IPP_OP_GET_DOCUMENT_ATTRIBUTES, /* Get-Document-Attributes: Get document information @exclude all@ */ - IPP_OP_GET_DOCUMENTS, /* Get-Documents: Get a list of documents in a job @exclude all@ */ - IPP_OP_DELETE_DOCUMENT, /* Delete-Document: Delete a document @deprecated@ @exclude all@ */ - IPP_OP_SET_DOCUMENT_ATTRIBUTES, /* Set-Document-Attributes: Set document values @exclude all@ */ - IPP_OP_CANCEL_JOBS, /* Cancel-Jobs: Cancel all jobs (administrative) */ - IPP_OP_CANCEL_MY_JOBS, /* Cancel-My-Jobs: Cancel a user's jobs */ - IPP_OP_RESUBMIT_JOB, /* Resubmit-Job: Copy and reprint a job @exclude all@ */ - IPP_OP_CLOSE_JOB, /* Close-Job: Close a job and start printing */ - IPP_OP_IDENTIFY_PRINTER, /* Identify-Printer: Make the printer beep, flash, or display a message for identification */ - IPP_OP_VALIDATE_DOCUMENT, /* Validate-Document: Validate document values prior to submission @exclude all@ */ - IPP_OP_ADD_DOCUMENT_IMAGES, /* Add-Document-Images: Add image(s) from the specified scanner source @exclude all@ */ - IPP_OP_ACKNOWLEDGE_DOCUMENT, /* Acknowledge-Document: Acknowledge processing of a document @exclude all@ */ - IPP_OP_ACKNOWLEDGE_IDENTIFY_PRINTER, /* Acknowledge-Identify-Printer: Acknowledge action on an Identify-Printer request @exclude all@ */ - IPP_OP_ACKNOWLEDGE_JOB, /* Acknowledge-Job: Acknowledge processing of a job @exclude all@ */ - IPP_OP_FETCH_DOCUMENT, /* Fetch-Document: Fetch a document for processing @exclude all@ */ - IPP_OP_FETCH_JOB, /* Fetch-Job: Fetch a job for processing @exclude all@ */ - IPP_OP_GET_OUTPUT_DEVICE_ATTRIBUTES, /* Get-Output-Device-Attributes: Get printer information for a specific output device @exclude all@ */ - IPP_OP_UPDATE_ACTIVE_JOBS, /* Update-Active-Jobs: Update the list of active jobs that a proxy has processed @exclude all@ */ - IPP_OP_DEREGISTER_OUTPUT_DEVICE, /* Deregister-Output-Device: Remove an output device @exclude all@ */ - IPP_OP_UPDATE_DOCUMENT_STATUS, /* Update-Document-Status: Update document values @exclude all@ */ - IPP_OP_UPDATE_JOB_STATUS, /* Update-Job-Status: Update job values @exclude all@ */ + IPP_OP_CANCEL_CURRENT_JOB, // Cancel-Current-Job: Cancel the current job + IPP_OP_SUSPEND_CURRENT_JOB, // Suspend-Current-Job: Suspend the current job + IPP_OP_RESUME_JOB, // Resume-Job: Resume the current job + IPP_OP_PROMOTE_JOB, // Promote-Job: Promote a job to print sooner + IPP_OP_SCHEDULE_JOB_AFTER, // Schedule-Job-After: Schedule a job to print after another + IPP_OP_CANCEL_DOCUMENT = 0x0033, // Cancel-Document: Cancel a document @exclude all@ + IPP_OP_GET_DOCUMENT_ATTRIBUTES, // Get-Document-Attributes: Get document information @exclude all@ + IPP_OP_GET_DOCUMENTS, // Get-Documents: Get a list of documents in a job @exclude all@ + IPP_OP_DELETE_DOCUMENT, // Delete-Document: Delete a document @deprecated@ @exclude all@ + IPP_OP_SET_DOCUMENT_ATTRIBUTES, // Set-Document-Attributes: Set document values @exclude all@ + IPP_OP_CANCEL_JOBS, // Cancel-Jobs: Cancel all jobs (administrative) + IPP_OP_CANCEL_MY_JOBS, // Cancel-My-Jobs: Cancel a user's jobs + IPP_OP_RESUBMIT_JOB, // Resubmit-Job: Copy and reprint a job @exclude all@ + IPP_OP_CLOSE_JOB, // Close-Job: Close a job and start printing + IPP_OP_IDENTIFY_PRINTER, // Identify-Printer: Make the printer beep, flash, or display a message for identification + IPP_OP_VALIDATE_DOCUMENT, // Validate-Document: Validate document values prior to submission @exclude all@ + IPP_OP_ADD_DOCUMENT_IMAGES, // Add-Document-Images: Add image(s) from the specified scanner source @exclude all@ + IPP_OP_ACKNOWLEDGE_DOCUMENT, // Acknowledge-Document: Acknowledge processing of a document @exclude all@ + IPP_OP_ACKNOWLEDGE_IDENTIFY_PRINTER, // Acknowledge-Identify-Printer: Acknowledge action on an Identify-Printer request @exclude all@ + IPP_OP_ACKNOWLEDGE_JOB, // Acknowledge-Job: Acknowledge processing of a job @exclude all@ + IPP_OP_FETCH_DOCUMENT, // Fetch-Document: Fetch a document for processing @exclude all@ + IPP_OP_FETCH_JOB, // Fetch-Job: Fetch a job for processing @exclude all@ + IPP_OP_GET_OUTPUT_DEVICE_ATTRIBUTES, // Get-Output-Device-Attributes: Get printer information for a specific output device @exclude all@ + IPP_OP_UPDATE_ACTIVE_JOBS, // Update-Active-Jobs: Update the list of active jobs that a proxy has processed @exclude all@ + IPP_OP_DEREGISTER_OUTPUT_DEVICE, // Deregister-Output-Device: Remove an output device @exclude all@ + IPP_OP_UPDATE_DOCUMENT_STATUS, // Update-Document-Status: Update document values @exclude all@ + IPP_OP_UPDATE_JOB_STATUS, // Update-Job-Status: Update job values @exclude all@ IPP_OP_UPDATE_OUTPUT_DEVICE_ATTRIBUTES, - /* Update-Output-Device-Attributes: Update output device values @exclude all@ */ - IPP_OP_GET_NEXT_DOCUMENT_DATA, /* Get-Next-Document-Data: Scan more document data @exclude all@ */ - IPP_OP_ALLOCATE_PRINTER_RESOURCES, /* Allocate-Printer-Resources: Use resources for a printer. */ - IPP_OP_CREATE_PRINTER, /* Create-Printer: Create a new service. */ - IPP_OP_DEALLOCATE_PRINTER_RESOURCES, /* Deallocate-Printer-Resources: Stop using resources for a printer. */ - IPP_OP_DELETE_PRINTER, /* Delete-Printer: Delete an existing service. */ - IPP_OP_GET_PRINTERS, /* Get-Printers: Get a list of services. */ - IPP_OP_SHUTDOWN_ONE_PRINTER, /* Shutdown-One-Printer: Shutdown a service. */ - IPP_OP_STARTUP_ONE_PRINTER, /* Startup-One-Printer: Start a service. */ - IPP_OP_CANCEL_RESOURCE, /* Cancel-Resource: Uninstall a resource. */ - IPP_OP_CREATE_RESOURCE, /* Create-Resource: Create a new (empty) resource. */ - IPP_OP_INSTALL_RESOURCE, /* Install-Resource: Install a resource. */ - IPP_OP_SEND_RESOURCE_DATA, /* Send-Resource-Data: Upload the data for a resource. */ - IPP_OP_SET_RESOURCE_ATTRIBUTES, /* Set-Resource-Attributes: Set resource object attributes. */ - IPP_OP_CREATE_RESOURCE_SUBSCRIPTIONS, /* Create-Resource-Subscriptions: Create event subscriptions for a resource. */ - IPP_OP_CREATE_SYSTEM_SUBSCRIPTIONS, /* Create-System-Subscriptions: Create event subscriptions for a system. */ - IPP_OP_DISABLE_ALL_PRINTERS, /* Disable-All-Printers: Stop accepting new jobs on all services. */ - IPP_OP_ENABLE_ALL_PRINTERS, /* Enable-All-Printers: Start accepting new jobs on all services. */ - IPP_OP_GET_SYSTEM_ATTRIBUTES, /* Get-System-Attributes: Get system object attributes. */ - IPP_OP_GET_SYSTEM_SUPPORTED_VALUES, /* Get-System-Supported-Values: Get supported values for system object attributes. */ - IPP_OP_PAUSE_ALL_PRINTERS, /* Pause-All-Printers: Stop all services immediately. */ + // Update-Output-Device-Attributes: Update output device values @exclude all@ + IPP_OP_GET_NEXT_DOCUMENT_DATA, // Get-Next-Document-Data: Scan more document data @exclude all@ + IPP_OP_ALLOCATE_PRINTER_RESOURCES, // Allocate-Printer-Resources: Use resources for a printer. + IPP_OP_CREATE_PRINTER, // Create-Printer: Create a new service. + IPP_OP_DEALLOCATE_PRINTER_RESOURCES, // Deallocate-Printer-Resources: Stop using resources for a printer. + IPP_OP_DELETE_PRINTER, // Delete-Printer: Delete an existing service. + IPP_OP_GET_PRINTERS, // Get-Printers: Get a list of services. + IPP_OP_SHUTDOWN_ONE_PRINTER, // Shutdown-One-Printer: Shutdown a service. + IPP_OP_STARTUP_ONE_PRINTER, // Startup-One-Printer: Start a service. + IPP_OP_CANCEL_RESOURCE, // Cancel-Resource: Uninstall a resource. + IPP_OP_CREATE_RESOURCE, // Create-Resource: Create a new (empty) resource. + IPP_OP_INSTALL_RESOURCE, // Install-Resource: Install a resource. + IPP_OP_SEND_RESOURCE_DATA, // Send-Resource-Data: Upload the data for a resource. + IPP_OP_SET_RESOURCE_ATTRIBUTES, // Set-Resource-Attributes: Set resource object attributes. + IPP_OP_CREATE_RESOURCE_SUBSCRIPTIONS, // Create-Resource-Subscriptions: Create event subscriptions for a resource. + IPP_OP_CREATE_SYSTEM_SUBSCRIPTIONS, // Create-System-Subscriptions: Create event subscriptions for a system. + IPP_OP_DISABLE_ALL_PRINTERS, // Disable-All-Printers: Stop accepting new jobs on all services. + IPP_OP_ENABLE_ALL_PRINTERS, // Enable-All-Printers: Start accepting new jobs on all services. + IPP_OP_GET_SYSTEM_ATTRIBUTES, // Get-System-Attributes: Get system object attributes. + IPP_OP_GET_SYSTEM_SUPPORTED_VALUES, // Get-System-Supported-Values: Get supported values for system object attributes. + IPP_OP_PAUSE_ALL_PRINTERS, // Pause-All-Printers: Stop all services immediately. IPP_OP_PAUSE_ALL_PRINTERS_AFTER_CURRENT_JOB, - /* Pause-All-Printers-After-Current-Job: Stop all services after processing the current jobs. */ - IPP_OP_REGISTER_OUTPUT_DEVICE, /* Register-Output-Device: Register a remote service. */ - IPP_OP_RESTART_SYSTEM, /* Restart-System: Restart all services. */ - IPP_OP_RESUME_ALL_PRINTERS, /* Resume-All-Printers: Start job processing on all services. */ - IPP_OP_SET_SYSTEM_ATTRIBUTES, /* Set-System-Attributes: Set system object attributes. */ - IPP_OP_SHUTDOWN_ALL_PRINTERS, /* Shutdown-All-Printers: Shutdown all services. */ - IPP_OP_STARTUP_ALL_PRINTERS, /* Startup-All-Printers: Startup all services. */ - IPP_OP_GET_PRINTER_RESOURCES, /* Get-Printer-Resources: Get a list of resources for a printer */ - IPP_OP_GET_USER_PRINTER_ATTRIBUTES, /* Get-User-Printer-Attributes: Get printer capabilities with authentication */ - IPP_OP_RESTART_ONE_PRINTER, /* Restart-One-Printer: Restart a single printer/service */ + // Pause-All-Printers-After-Current-Job: Stop all services after processing the current jobs. + IPP_OP_REGISTER_OUTPUT_DEVICE, // Register-Output-Device: Register a remote service. + IPP_OP_RESTART_SYSTEM, // Restart-System: Restart all services. + IPP_OP_RESUME_ALL_PRINTERS, // Resume-All-Printers: Start job processing on all services. + IPP_OP_SET_SYSTEM_ATTRIBUTES, // Set-System-Attributes: Set system object attributes. + IPP_OP_SHUTDOWN_ALL_PRINTERS, // Shutdown-All-Printers: Shutdown all services. + IPP_OP_STARTUP_ALL_PRINTERS, // Startup-All-Printers: Startup all services. + IPP_OP_GET_PRINTER_RESOURCES, // Get-Printer-Resources: Get a list of resources for a printer + IPP_OP_GET_USER_PRINTER_ATTRIBUTES, // Get-User-Printer-Attributes: Get printer capabilities with authentication + IPP_OP_RESTART_ONE_PRINTER, // Restart-One-Printer: Restart a single printer/service IPP_OP_ACKNOWLEDGE_ENCRYPTED_JOB_ATTRIBUTES, - /* Acknowledge-Encrypted-Job-Attributes: Acknowledge receipt of encrypted job attributes */ - IPP_OP_FETCH_ENCRYPTED_JOB_ATTRIBUTES,/* Fetch-Encrypted-Job-Attributes: Download encrypted job attributes */ - IPP_OP_GET_ENCRYPTED_JOB_ATTRIBUTES, /* Get-Encrypted-Job-Attributes: Query job attributes and return in an encrypted form */ - - IPP_OP_PRIVATE = 0x4000, /* Reserved @private@ */ - IPP_OP_CUPS_GET_DEFAULT, /* CUPS-Get-Default: Get the default printer */ - IPP_OP_CUPS_GET_PRINTERS, /* CUPS-Get-Printers: Get a list of printers and/or classes */ - IPP_OP_CUPS_ADD_MODIFY_PRINTER, /* CUPS-Add-Modify-Printer: Add or modify a printer */ - IPP_OP_CUPS_DELETE_PRINTER, /* CUPS-Delete-Printer: Delete a printer */ - IPP_OP_CUPS_GET_CLASSES, /* CUPS-Get-Classes: Get a list of classes @deprecated@ @exclude all@ */ - IPP_OP_CUPS_ADD_MODIFY_CLASS, /* CUPS-Add-Modify-Class: Add or modify a class */ - IPP_OP_CUPS_DELETE_CLASS, /* CUPS-Delete-Class: Delete a class */ - IPP_OP_CUPS_ACCEPT_JOBS, /* CUPS-Accept-Jobs: Accept new jobs on a printer @exclude all@ */ - IPP_OP_CUPS_REJECT_JOBS, /* CUPS-Reject-Jobs: Reject new jobs on a printer @exclude all@ */ - IPP_OP_CUPS_SET_DEFAULT, /* CUPS-Set-Default: Set the default printer */ - IPP_OP_CUPS_GET_DEVICES, /* CUPS-Get-Devices: Get a list of supported devices @deprecated@ */ - IPP_OP_CUPS_GET_PPDS, /* CUPS-Get-PPDs: Get a list of supported drivers @deprecated@ */ - IPP_OP_CUPS_MOVE_JOB, /* CUPS-Move-Job: Move a job to a different printer */ - IPP_OP_CUPS_AUTHENTICATE_JOB, /* CUPS-Authenticate-Job: Authenticate a job */ - IPP_OP_CUPS_GET_PPD, /* CUPS-Get-PPD: Get a PPD file @deprecated@ */ - IPP_OP_CUPS_GET_DOCUMENT = 0x4027, /* CUPS-Get-Document: Get a document file */ - IPP_OP_CUPS_CREATE_LOCAL_PRINTER /* CUPS-Create-Local-Printer: Create a local (temporary) printer */ + // Acknowledge-Encrypted-Job-Attributes: Acknowledge receipt of encrypted job attributes + IPP_OP_FETCH_ENCRYPTED_JOB_ATTRIBUTES,// Fetch-Encrypted-Job-Attributes: Download encrypted job attributes + IPP_OP_GET_ENCRYPTED_JOB_ATTRIBUTES, // Get-Encrypted-Job-Attributes: Query job attributes and return in an encrypted form + + IPP_OP_PRIVATE = 0x4000, // Reserved @private@ + IPP_OP_CUPS_GET_DEFAULT, // CUPS-Get-Default: Get the default printer + IPP_OP_CUPS_GET_PRINTERS, // CUPS-Get-Printers: Get a list of printers and/or classes + IPP_OP_CUPS_ADD_MODIFY_PRINTER, // CUPS-Add-Modify-Printer: Add or modify a printer + IPP_OP_CUPS_DELETE_PRINTER, // CUPS-Delete-Printer: Delete a printer + IPP_OP_CUPS_GET_CLASSES, // CUPS-Get-Classes: Get a list of classes @deprecated@ @exclude all@ + IPP_OP_CUPS_ADD_MODIFY_CLASS, // CUPS-Add-Modify-Class: Add or modify a class + IPP_OP_CUPS_DELETE_CLASS, // CUPS-Delete-Class: Delete a class + IPP_OP_CUPS_ACCEPT_JOBS, // CUPS-Accept-Jobs: Accept new jobs on a printer @exclude all@ + IPP_OP_CUPS_REJECT_JOBS, // CUPS-Reject-Jobs: Reject new jobs on a printer @exclude all@ + IPP_OP_CUPS_SET_DEFAULT, // CUPS-Set-Default: Set the default printer + IPP_OP_CUPS_GET_DEVICES, // CUPS-Get-Devices: Get a list of supported devices @deprecated@ + IPP_OP_CUPS_GET_PPDS, // CUPS-Get-PPDs: Get a list of supported drivers @deprecated@ + IPP_OP_CUPS_MOVE_JOB, // CUPS-Move-Job: Move a job to a different printer + IPP_OP_CUPS_AUTHENTICATE_JOB, // CUPS-Authenticate-Job: Authenticate a job + IPP_OP_CUPS_GET_PPD, // CUPS-Get-PPD: Get a PPD file @deprecated@ + IPP_OP_CUPS_GET_DOCUMENT = 0x4027, // CUPS-Get-Document: Get a document file + IPP_OP_CUPS_CREATE_LOCAL_PRINTER // CUPS-Create-Local-Printer: Create a local (temporary) printer } ipp_op_t; -typedef enum ipp_orient_e /**** "orientation-requested" values ****/ +typedef enum ipp_orient_e // "orientation-requested" values { - IPP_ORIENT_PORTRAIT = 3, /* No rotation */ - IPP_ORIENT_LANDSCAPE, /* 90 degrees counter-clockwise */ - IPP_ORIENT_REVERSE_LANDSCAPE, /* 90 degrees clockwise */ - IPP_ORIENT_REVERSE_PORTRAIT, /* 180 degrees */ - IPP_ORIENT_NONE /* No rotation */ + IPP_ORIENT_PORTRAIT = 3, // No rotation + IPP_ORIENT_LANDSCAPE, // 90 degrees counter-clockwise + IPP_ORIENT_REVERSE_LANDSCAPE, // 90 degrees clockwise + IPP_ORIENT_REVERSE_PORTRAIT, // 180 degrees + IPP_ORIENT_NONE // No rotation } ipp_orient_t; -typedef enum ipp_pstate_e /**** "printer-state" values ****/ +typedef enum ipp_pstate_e // "printer-state" values { - IPP_PSTATE_IDLE = 3, /* Printer is idle */ - IPP_PSTATE_PROCESSING, /* Printer is working */ - IPP_PSTATE_STOPPED /* Printer is stopped */ + IPP_PSTATE_IDLE = 3, // Printer is idle + IPP_PSTATE_PROCESSING, // Printer is working + IPP_PSTATE_STOPPED // Printer is stopped } ipp_pstate_t; -typedef enum ipp_quality_e /**** "print-quality" values ****/ +typedef enum ipp_quality_e // "print-quality" values { - IPP_QUALITY_DRAFT = 3, /* Draft quality */ - IPP_QUALITY_NORMAL, /* Normal quality */ - IPP_QUALITY_HIGH /* High quality */ + IPP_QUALITY_DRAFT = 3, // Draft quality + IPP_QUALITY_NORMAL, // Normal quality + IPP_QUALITY_HIGH // High quality } ipp_quality_t; -typedef enum ipp_res_e /**** Resolution units ****/ +typedef enum ipp_res_e // Resolution units { - IPP_RES_PER_INCH = 3, /* Pixels per inch */ - IPP_RES_PER_CM /* Pixels per centimeter */ + IPP_RES_PER_INCH = 3, // Pixels per inch + IPP_RES_PER_CM // Pixels per centimeter } ipp_res_t; -typedef enum ipp_rstate_e /**** "resource-state" values ****/ +typedef enum ipp_rstate_e // "resource-state" values { - IPP_RSTATE_PENDING = 3, /* Resource is created but has no data yet. */ - IPP_RSTATE_AVAILABLE, /* Resource is available for installation. */ - IPP_RSTATE_INSTALLED, /* Resource is installed. */ - IPP_RSTATE_CANCELED, /* Resource has been canceled and is pending deletion. */ - IPP_RSTATE_ABORTED /* Resource has been aborted and is pending deletion. */ + IPP_RSTATE_PENDING = 3, // Resource is created but has no data yet. + IPP_RSTATE_AVAILABLE, // Resource is available for installation. + IPP_RSTATE_INSTALLED, // Resource is installed. + IPP_RSTATE_CANCELED, // Resource has been canceled and is pending deletion. + IPP_RSTATE_ABORTED // Resource has been aborted and is pending deletion. } ipp_rstate_t; -typedef enum ipp_sstate_e /**** "system-state" values ****/ +typedef enum ipp_sstate_e // "system-state" values { - IPP_SSTATE_IDLE = 3, /* At least one printer is idle and none are processing a job. */ - IPP_SSTATE_PROCESSING, /* At least one printer is processing a job. */ - IPP_SSTATE_STOPPED /* All printers are stopped. */ + IPP_SSTATE_IDLE = 3, // At least one printer is idle and none are processing a job. + IPP_SSTATE_PROCESSING, // At least one printer is processing a job. + IPP_SSTATE_STOPPED // All printers are stopped. } ipp_sstate_t; -typedef enum ipp_state_e /**** `ipp_t` state values ****/ +typedef enum ipp_state_e // `ipp_t` state values { - IPP_STATE_ERROR = -1, /* An error occurred */ - IPP_STATE_IDLE, /* Nothing is happening/request completed */ - IPP_STATE_HEADER, /* The request header needs to be sent/received */ - IPP_STATE_ATTRIBUTE, /* One or more attributes need to be sent/received */ - IPP_STATE_DATA /* IPP request data needs to be sent/received */ + IPP_STATE_ERROR = -1, // An error occurred + IPP_STATE_IDLE, // Nothing is happening/request completed + IPP_STATE_HEADER, // The request header needs to be sent/received + IPP_STATE_ATTRIBUTE, // One or more attributes need to be sent/received + IPP_STATE_DATA // IPP request data needs to be sent/received } ipp_state_t; -typedef enum ipp_status_e /**** IPP status code values ****/ +typedef enum ipp_status_e // IPP status code values { - IPP_STATUS_CUPS_INVALID = -1, /* Invalid status name for @link ippErrorValue@ */ - IPP_STATUS_OK = 0x0000, /* successful-ok */ - IPP_STATUS_OK_IGNORED_OR_SUBSTITUTED, /* successful-ok-ignored-or-substituted-attributes */ - IPP_STATUS_OK_CONFLICTING, /* successful-ok-conflicting-attributes */ - IPP_STATUS_OK_IGNORED_SUBSCRIPTIONS, /* successful-ok-ignored-subscriptions */ - IPP_STATUS_OK_IGNORED_NOTIFICATIONS, /* successful-ok-ignored-notifications @private@ */ - IPP_STATUS_OK_TOO_MANY_EVENTS, /* successful-ok-too-many-events */ - IPP_STATUS_OK_BUT_CANCEL_SUBSCRIPTION,/* successful-ok-but-cancel-subscription @private@ */ - IPP_STATUS_OK_EVENTS_COMPLETE, /* successful-ok-events-complete */ + IPP_STATUS_CUPS_INVALID = -1, // Invalid status name for @link ippErrorValue@ + IPP_STATUS_OK = 0x0000, // successful-ok + IPP_STATUS_OK_IGNORED_OR_SUBSTITUTED, // successful-ok-ignored-or-substituted-attributes + IPP_STATUS_OK_CONFLICTING, // successful-ok-conflicting-attributes + IPP_STATUS_OK_IGNORED_SUBSCRIPTIONS, // successful-ok-ignored-subscriptions + IPP_STATUS_OK_IGNORED_NOTIFICATIONS, // successful-ok-ignored-notifications @private@ + IPP_STATUS_OK_TOO_MANY_EVENTS, // successful-ok-too-many-events + IPP_STATUS_OK_BUT_CANCEL_SUBSCRIPTION,// successful-ok-but-cancel-subscription @private@ + IPP_STATUS_OK_EVENTS_COMPLETE, // successful-ok-events-complete IPP_STATUS_REDIRECTION_OTHER_SITE = 0x0200, - /* redirection-other-site @private@ */ - IPP_STATUS_CUPS_SEE_OTHER = 0x0280, /* cups-see-other @private@ */ - IPP_STATUS_ERROR_BAD_REQUEST = 0x0400,/* client-error-bad-request */ - IPP_STATUS_ERROR_FORBIDDEN, /* client-error-forbidden */ - IPP_STATUS_ERROR_NOT_AUTHENTICATED, /* client-error-not-authenticated */ - IPP_STATUS_ERROR_NOT_AUTHORIZED, /* client-error-not-authorized */ - IPP_STATUS_ERROR_NOT_POSSIBLE, /* client-error-not-possible */ - IPP_STATUS_ERROR_TIMEOUT, /* client-error-timeout */ - IPP_STATUS_ERROR_NOT_FOUND, /* client-error-not-found */ - IPP_STATUS_ERROR_GONE, /* client-error-gone */ - IPP_STATUS_ERROR_REQUEST_ENTITY, /* client-error-request-entity-too-large */ - IPP_STATUS_ERROR_REQUEST_VALUE, /* client-error-request-value-too-long */ + // redirection-other-site @private@ + IPP_STATUS_CUPS_SEE_OTHER = 0x0280, // cups-see-other @private@ + IPP_STATUS_ERROR_BAD_REQUEST = 0x0400,// client-error-bad-request + IPP_STATUS_ERROR_FORBIDDEN, // client-error-forbidden + IPP_STATUS_ERROR_NOT_AUTHENTICATED, // client-error-not-authenticated + IPP_STATUS_ERROR_NOT_AUTHORIZED, // client-error-not-authorized + IPP_STATUS_ERROR_NOT_POSSIBLE, // client-error-not-possible + IPP_STATUS_ERROR_TIMEOUT, // client-error-timeout + IPP_STATUS_ERROR_NOT_FOUND, // client-error-not-found + IPP_STATUS_ERROR_GONE, // client-error-gone + IPP_STATUS_ERROR_REQUEST_ENTITY, // client-error-request-entity-too-large + IPP_STATUS_ERROR_REQUEST_VALUE, // client-error-request-value-too-long IPP_STATUS_ERROR_DOCUMENT_FORMAT_NOT_SUPPORTED, - /* client-error-document-format-not-supported */ - IPP_STATUS_ERROR_ATTRIBUTES_OR_VALUES,/* client-error-attributes-or-values-not-supported */ - IPP_STATUS_ERROR_URI_SCHEME, /* client-error-uri-scheme-not-supported */ - IPP_STATUS_ERROR_CHARSET, /* client-error-charset-not-supported */ - IPP_STATUS_ERROR_CONFLICTING, /* client-error-conflicting-attributes */ + // client-error-document-format-not-supported + IPP_STATUS_ERROR_ATTRIBUTES_OR_VALUES,// client-error-attributes-or-values-not-supported + IPP_STATUS_ERROR_URI_SCHEME, // client-error-uri-scheme-not-supported + IPP_STATUS_ERROR_CHARSET, // client-error-charset-not-supported + IPP_STATUS_ERROR_CONFLICTING, // client-error-conflicting-attributes IPP_STATUS_ERROR_COMPRESSION_NOT_SUPPORTED, - /* client-error-compression-not-supported */ - IPP_STATUS_ERROR_COMPRESSION_ERROR, /* client-error-compression-error */ + // client-error-compression-not-supported + IPP_STATUS_ERROR_COMPRESSION_ERROR, // client-error-compression-error IPP_STATUS_ERROR_DOCUMENT_FORMAT_ERROR, - /* client-error-document-format-error */ - IPP_STATUS_ERROR_DOCUMENT_ACCESS, /* client-error-document-access-error */ + // client-error-document-format-error + IPP_STATUS_ERROR_DOCUMENT_ACCESS, // client-error-document-access-error IPP_STATUS_ERROR_ATTRIBUTES_NOT_SETTABLE, - /* client-error-attributes-not-settable */ + // client-error-attributes-not-settable IPP_STATUS_ERROR_IGNORED_ALL_SUBSCRIPTIONS, - /* client-error-ignored-all-subscriptions */ + // client-error-ignored-all-subscriptions IPP_STATUS_ERROR_TOO_MANY_SUBSCRIPTIONS, - /* client-error-too-many-subscriptions */ + // client-error-too-many-subscriptions IPP_STATUS_ERROR_IGNORED_ALL_NOTIFICATIONS, - /* client-error-ignored-all-notifications @private@ */ + // client-error-ignored-all-notifications @private@ IPP_STATUS_ERROR_PRINT_SUPPORT_FILE_NOT_FOUND, - /* client-error-print-support-file-not-found @private@ */ - IPP_STATUS_ERROR_DOCUMENT_PASSWORD, /* client-error-document-password-error */ - IPP_STATUS_ERROR_DOCUMENT_PERMISSION, /* client-error-document-permission-error */ - IPP_STATUS_ERROR_DOCUMENT_SECURITY, /* client-error-document-security-error */ - IPP_STATUS_ERROR_DOCUMENT_UNPRINTABLE,/* client-error-document-unprintable-error */ - IPP_STATUS_ERROR_ACCOUNT_INFO_NEEDED, /* client-error-account-info-needed */ - IPP_STATUS_ERROR_ACCOUNT_CLOSED, /* client-error-account-closed */ + // client-error-print-support-file-not-found @private@ + IPP_STATUS_ERROR_DOCUMENT_PASSWORD, // client-error-document-password-error + IPP_STATUS_ERROR_DOCUMENT_PERMISSION, // client-error-document-permission-error + IPP_STATUS_ERROR_DOCUMENT_SECURITY, // client-error-document-security-error + IPP_STATUS_ERROR_DOCUMENT_UNPRINTABLE,// client-error-document-unprintable-error + IPP_STATUS_ERROR_ACCOUNT_INFO_NEEDED, // client-error-account-info-needed + IPP_STATUS_ERROR_ACCOUNT_CLOSED, // client-error-account-closed IPP_STATUS_ERROR_ACCOUNT_LIMIT_REACHED, - /* client-error-account-limit-reached */ + // client-error-account-limit-reached IPP_STATUS_ERROR_ACCOUNT_AUTHORIZATION_FAILED, - /* client-error-account-authorization-failed */ - IPP_STATUS_ERROR_NOT_FETCHABLE, /* client-error-not-fetchable */ + // client-error-account-authorization-failed + IPP_STATUS_ERROR_NOT_FETCHABLE, // client-error-not-fetchable - IPP_STATUS_ERROR_INTERNAL = 0x0500, /* server-error-internal-error */ + IPP_STATUS_ERROR_INTERNAL = 0x0500, // server-error-internal-error IPP_STATUS_ERROR_OPERATION_NOT_SUPPORTED, - /* server-error-operation-not-supported */ - IPP_STATUS_ERROR_SERVICE_UNAVAILABLE, /* server-error-service-unavailable */ + // server-error-operation-not-supported + IPP_STATUS_ERROR_SERVICE_UNAVAILABLE, // server-error-service-unavailable IPP_STATUS_ERROR_VERSION_NOT_SUPPORTED, - /* server-error-version-not-supported */ - IPP_STATUS_ERROR_DEVICE, /* server-error-device-error */ - IPP_STATUS_ERROR_TEMPORARY, /* server-error-temporary-error */ - IPP_STATUS_ERROR_NOT_ACCEPTING_JOBS, /* server-error-not-accepting-jobs */ - IPP_STATUS_ERROR_BUSY, /* server-error-busy */ - IPP_STATUS_ERROR_JOB_CANCELED, /* server-error-job-canceled */ + // server-error-version-not-supported + IPP_STATUS_ERROR_DEVICE, // server-error-device-error + IPP_STATUS_ERROR_TEMPORARY, // server-error-temporary-error + IPP_STATUS_ERROR_NOT_ACCEPTING_JOBS, // server-error-not-accepting-jobs + IPP_STATUS_ERROR_BUSY, // server-error-busy + IPP_STATUS_ERROR_JOB_CANCELED, // server-error-job-canceled IPP_STATUS_ERROR_MULTIPLE_JOBS_NOT_SUPPORTED, - /* server-error-multiple-document-jobs-not-supported */ + // server-error-multiple-document-jobs-not-supported IPP_STATUS_ERROR_PRINTER_IS_DEACTIVATED, - /* server-error-printer-is-deactivated */ - IPP_STATUS_ERROR_TOO_MANY_JOBS, /* server-error-too-many-jobs */ - IPP_STATUS_ERROR_TOO_MANY_DOCUMENTS, /* server-error-too-many-documents */ + // server-error-printer-is-deactivated + IPP_STATUS_ERROR_TOO_MANY_JOBS, // server-error-too-many-jobs + IPP_STATUS_ERROR_TOO_MANY_DOCUMENTS, // server-error-too-many-documents - /* These are internal and never sent over the wire... */ + // These are internal and never sent over the wire... IPP_STATUS_ERROR_CUPS_AUTHENTICATION_CANCELED = 0x1000, - /* cups-authentication-canceled - Authentication canceled by user */ - IPP_STATUS_ERROR_CUPS_PKI, /* cups-pki-error - Error negotiating a secure connection */ - IPP_STATUS_ERROR_CUPS_UPGRADE_REQUIRED/* cups-upgrade-required - TLS upgrade required */ + // cups-authentication-canceled - Authentication canceled by user + IPP_STATUS_ERROR_CUPS_PKI, // cups-pki-error - Error negotiating a secure connection + IPP_STATUS_ERROR_CUPS_UPGRADE_REQUIRED// cups-upgrade-required - TLS upgrade required } ipp_status_t; -typedef enum ipp_tag_e /**** Value and group tag values for attributes ****/ +typedef enum ipp_tag_e // Value and group tag values for attributes { - IPP_TAG_CUPS_INVALID = -1, /* Invalid tag name for @link ippTagValue@ */ - IPP_TAG_ZERO = 0x00, /* Zero tag - used for separators */ - IPP_TAG_OPERATION, /* Operation group */ - IPP_TAG_JOB, /* Job group */ - IPP_TAG_END, /* End-of-attributes */ - IPP_TAG_PRINTER, /* Printer group */ - IPP_TAG_UNSUPPORTED_GROUP, /* Unsupported attributes group */ - IPP_TAG_SUBSCRIPTION, /* Subscription group */ - IPP_TAG_EVENT_NOTIFICATION, /* Event group */ - IPP_TAG_RESOURCE, /* Resource group */ - IPP_TAG_DOCUMENT, /* Document group */ - IPP_TAG_SYSTEM, /* System group */ - IPP_TAG_UNSUPPORTED_VALUE = 0x10, /* Unsupported value */ - IPP_TAG_DEFAULT, /* Default value */ - IPP_TAG_UNKNOWN, /* Unknown value */ - IPP_TAG_NOVALUE, /* No-value value */ - IPP_TAG_NOTSETTABLE = 0x15, /* Not-settable value */ - IPP_TAG_DELETEATTR, /* Delete-attribute value */ - IPP_TAG_ADMINDEFINE, /* Admin-defined value */ - IPP_TAG_INTEGER = 0x21, /* Integer value */ - IPP_TAG_BOOLEAN, /* Boolean value */ - IPP_TAG_ENUM, /* Enumeration value */ - IPP_TAG_STRING = 0x30, /* Octet string value */ - IPP_TAG_DATE, /* Date/time value */ - IPP_TAG_RESOLUTION, /* Resolution value */ - IPP_TAG_RANGE, /* Range value */ - IPP_TAG_BEGIN_COLLECTION, /* Beginning of collection value @exclude all@ */ - IPP_TAG_TEXTLANG, /* Text-with-language value */ - IPP_TAG_NAMELANG, /* Name-with-language value */ - IPP_TAG_END_COLLECTION, /* End of collection value @exclude all@ */ - IPP_TAG_TEXT = 0x41, /* Text value */ - IPP_TAG_NAME, /* Name value */ - IPP_TAG_RESERVED_STRING, /* Reserved for future string value @private@ */ - IPP_TAG_KEYWORD, /* Keyword value */ - IPP_TAG_URI, /* URI value */ - IPP_TAG_URISCHEME, /* URI scheme value */ - IPP_TAG_CHARSET, /* Character set value */ - IPP_TAG_LANGUAGE, /* Language value */ - IPP_TAG_MIMETYPE, /* MIME media type value */ - IPP_TAG_MEMBERNAME, /* Collection member name value @exclude all@ */ - IPP_TAG_EXTENSION = 0x7f, /* Extension point for 32-bit tags @exclude all@ */ - IPP_TAG_CUPS_MASK = 0x7fffffff, /* Mask for copied attribute values @private@ */ - /* The following expression is used to avoid compiler warnings with +/-0x80000000 */ - IPP_TAG_CUPS_CONST = -0x7fffffff-1 /* Bitflag for copied/const attribute values @private@ */ + IPP_TAG_CUPS_INVALID = -1, // Invalid tag name for @link ippTagValue@ + IPP_TAG_ZERO = 0x00, // Zero tag - used for separators + IPP_TAG_OPERATION, // Operation group + IPP_TAG_JOB, // Job group + IPP_TAG_END, // End-of-attributes + IPP_TAG_PRINTER, // Printer group + IPP_TAG_UNSUPPORTED_GROUP, // Unsupported attributes group + IPP_TAG_SUBSCRIPTION, // Subscription group + IPP_TAG_EVENT_NOTIFICATION, // Event group + IPP_TAG_RESOURCE, // Resource group + IPP_TAG_DOCUMENT, // Document group + IPP_TAG_SYSTEM, // System group + IPP_TAG_UNSUPPORTED_VALUE = 0x10, // Unsupported value + IPP_TAG_DEFAULT, // Default value + IPP_TAG_UNKNOWN, // Unknown value + IPP_TAG_NOVALUE, // No-value value + IPP_TAG_NOTSETTABLE = 0x15, // Not-settable value + IPP_TAG_DELETEATTR, // Delete-attribute value + IPP_TAG_ADMINDEFINE, // Admin-defined value + IPP_TAG_INTEGER = 0x21, // Integer value + IPP_TAG_BOOLEAN, // Boolean value + IPP_TAG_ENUM, // Enumeration value + IPP_TAG_STRING = 0x30, // Octet string value + IPP_TAG_DATE, // Date/time value + IPP_TAG_RESOLUTION, // Resolution value + IPP_TAG_RANGE, // Range value + IPP_TAG_BEGIN_COLLECTION, // Beginning of collection value @exclude all@ + IPP_TAG_TEXTLANG, // Text-with-language value + IPP_TAG_NAMELANG, // Name-with-language value + IPP_TAG_END_COLLECTION, // End of collection value @exclude all@ + IPP_TAG_TEXT = 0x41, // Text value + IPP_TAG_NAME, // Name value + IPP_TAG_RESERVED_STRING, // Reserved for future string value @private@ + IPP_TAG_KEYWORD, // Keyword value + IPP_TAG_URI, // URI value + IPP_TAG_URISCHEME, // URI scheme value + IPP_TAG_CHARSET, // Character set value + IPP_TAG_LANGUAGE, // Language value + IPP_TAG_MIMETYPE, // MIME media type value + IPP_TAG_MEMBERNAME, // Collection member name value @exclude all@ + IPP_TAG_EXTENSION = 0x7f, // Extension point for 32-bit tags @exclude all@ + IPP_TAG_CUPS_MASK = 0x7fffffff, // Mask for copied attribute values @private@ + // The following expression is used to avoid compiler warnings with +/-0x80000000 + IPP_TAG_CUPS_CONST = -0x7fffffff-1 // Bitflag for copied/const attribute values @private@ } ipp_tag_t; -typedef unsigned char ipp_uchar_t; /**** Unsigned 8-bit integer/character ****/ -typedef struct _ipp_s ipp_t; /**** IPP request/response data ****/ +typedef unsigned char ipp_uchar_t; // Unsigned 8-bit integer/character +typedef struct _ipp_s ipp_t; // IPP request/response data typedef struct _ipp_attribute_s ipp_attribute_t; - /**** IPP attribute ****/ + // IPP attribute typedef struct _ipp_file_s ipp_file_t; // IPP data file typedef bool (*ipp_fattr_cb_t)(ipp_file_t *file, void *cb_data, const char *name); @@ -525,15 +525,15 @@ typedef bool (*ipp_ftoken_cb_t)(ipp_file_t *file, void *cb_data, const char *tok // IPP data file token callback typedef ssize_t (*ipp_iocb_t)(void *context, ipp_uchar_t *buffer, size_t bytes); - /**** ippReadIO/ippWriteIO callback function ****/ + // ippReadIO/ippWriteIO callback function typedef bool (*ipp_copycb_t)(void *context, ipp_t *dst, ipp_attribute_t *attr); - /**** ippCopyAttributes callback function ****/ + // ippCopyAttributes callback function -/* - * Prototypes... - */ +// +// Prototypes... +// extern ipp_attribute_t *ippAddBoolean(ipp_t *ipp, ipp_tag_t group, const char *name, bool value) _CUPS_PUBLIC; extern ipp_attribute_t *ippAddBooleans(ipp_t *ipp, ipp_tag_t group, const char *name, size_t num_values, const bool *values) _CUPS_PUBLIC; @@ -572,16 +572,17 @@ extern const char *ippErrorString(ipp_status_t error) _CUPS_PUBLIC; extern ipp_status_t ippErrorValue(const char *name) _CUPS_PUBLIC; extern bool ippFileClose(ipp_file_t *file) _CUPS_PUBLIC; +extern size_t ippFileExpandVars(ipp_file_t *file, char *dst, const char *src, size_t dstsize) _CUPS_PUBLIC; extern ipp_t *ippFileGetAttributes(ipp_file_t *file) _CUPS_PUBLIC; extern const char *ippFileGetFilename(ipp_file_t *file) _CUPS_PUBLIC; extern int ippFileGetLineNumber(ipp_file_t *file) _CUPS_PUBLIC; extern const char *ippFileGetVar(ipp_file_t *file, const char *name) _CUPS_PUBLIC; extern ipp_file_t *ippFileOpen(const char *filename, const char *mode, ipp_file_t *parent, ipp_fattr_cb_t attr_cb, ipp_ferror_cb_t error_cb, void *cb_data) _CUPS_PUBLIC; extern bool ippFileRead(ipp_file_t *file, ipp_ftoken_cb_t token_cb) _CUPS_PUBLIC; -extern bool ippFileReadToken(ipp_file_t *file, char *buffer, size_t bufsize) _CUPS_PUBLIC; +extern bool ippFileReadToken(ipp_file_t *file, char *token, size_t tokensize) _CUPS_PUBLIC; extern void ippFileSetVar(ipp_file_t *file, const char *name, const char *value) _CUPS_PUBLIC; extern void ippFileSetVarf(ipp_file_t *file, const char *name, const char *value, ...) _CUPS_FORMAT(3,4) _CUPS_PUBLIC; -extern bool ippFileWriteAttributes(ipp_file_t *file, ipp_t *ipp) _CUPS_PUBLIC; +extern bool ippFileWriteAttributes(ipp_file_t *file, ipp_t *ipp, bool with_groups) _CUPS_PUBLIC; extern bool ippFileWriteComment(ipp_file_t *file, const char *comment, ...) _CUPS_FORMAT(2,3) _CUPS_PUBLIC; extern bool ippFileWriteToken(ipp_file_t *file, const char *token) _CUPS_PUBLIC; extern bool ippFileWriteTokenf(ipp_file_t *file, const char *token, ...) _CUPS_FORMAT(2,3) _CUPS_PUBLIC; @@ -659,5 +660,5 @@ extern ipp_state_t ippWriteIO(void *dst, ipp_iocb_t cb, bool blocking, ipp_t *pa # ifdef __cplusplus } -# endif /* __cplusplus */ -#endif /* !_CUPS_IPP_H_ */ +# endif // __cplusplus +#endif // !_CUPS_IPP_H_ diff --git a/tools/ipptool.c b/tools/ipptool.c index dcc8b1ed4..c3c1b69a1 100644 --- a/tools/ipptool.c +++ b/tools/ipptool.c @@ -128,7 +128,6 @@ typedef struct ipptool_status_s /**** Status info ****/ typedef struct ipptool_test_s /**** Test Data ****/ { /* Global Options */ - _ipp_vars_t *vars; /* Variables */ http_encryption_t encryption; /* Encryption for connection */ int family; /* Address family */ ipptool_output_t output; /* Output mode */ @@ -200,7 +199,7 @@ typedef struct ipptool_test_s /**** Test Data ****/ * Globals... */ -static int Cancel = 0; /* Cancel test? */ +static bool Cancel = false; /* Cancel test? */ /* @@ -211,17 +210,17 @@ static void add_stringf(cups_array_t *a, const char *s, ...) _CUPS_FORMAT(2, 3); static int compare_uris(const char *a, const char *b); static void copy_hex_string(char *buffer, unsigned char *data, int datalen, size_t bufsize); static void *do_monitor_printer_state(ipptool_test_t *data); -static int do_test(_ipp_file_t *f, ipptool_test_t *data); +static int do_test(ipp_file_t *file, ipptool_test_t *data); static int do_tests(const char *testfile, ipptool_test_t *data); -static int error_cb(_ipp_file_t *f, ipptool_test_t *data, const char *error); +static int error_cb(ipp_file_t *f, ipptool_test_t *data, const char *error); static int expect_matches(ipptool_expect_t *expect, ipp_attribute_t *attr); static http_status_t generate_file(http_t *http, ipptool_generate_t *params); static char *get_filename(const char *testfile, char *dst, const char *src, size_t dstsize); static const char *get_string(ipp_attribute_t *attr, size_t element, int flags, char *buffer, size_t bufsize); static void init_data(ipptool_test_t *data); static char *iso_date(const ipp_uchar_t *date); -static int parse_generate_file(_ipp_file_t *f, ipptool_test_t *data); -static int parse_monitor_printer_state(_ipp_file_t *f, ipptool_test_t *data); +static int parse_generate_file(ipp_file_t *f, ipptool_test_t *data); +static int parse_monitor_printer_state(ipp_file_t *f, ipptool_test_t *data); static void pause_message(const char *message); static void print_attr(cups_file_t *outfile, ipptool_output_t output, ipp_attribute_t *attr, ipp_tag_t *group); static ipp_attribute_t *print_csv(ipptool_test_t *data, ipp_t *ipp, ipp_attribute_t *attr, int num_displayed, char **displayed, size_t *widths); @@ -238,7 +237,7 @@ static void print_xml_trailer(ipptool_test_t *data, int success, const char *mes static void sigterm_handler(int sig); #endif /* _WIN32 */ static bool timeout_cb(http_t *http, void *user_data); -static int token_cb(_ipp_file_t *f, _ipp_vars_t *vars, ipptool_test_t *data, const char *token); +static int token_cb(ipp_file_t *f, ipptool_test_t *data, const char *token); static void usage(void) _CUPS_NORETURN; static int with_distinct_values(cups_array_t *errors, ipp_attribute_t *attr); static const char *with_flags_string(int flags); @@ -265,10 +264,10 @@ main(int argc, /* I - Number of command-line args */ *testfile; /* Test file to use */ int interval, /* Test interval in microseconds */ repeat; /* Repeat count */ - _ipp_vars_t vars; /* Variables */ - ipptool_test_t *data; /* Test data */ + ipp_file_t *parent; // Parent IPP data file variables + ipptool_test_t *data; // Test data _cups_globals_t *cg = _cupsGlobals(); - /* Global data */ + // Global data #ifndef _WIN32 @@ -4929,7 +4928,7 @@ sigterm_handler(int sig) /* I - Signal number (unused) */ { (void)sig; - Cancel = 1; + Cancel = true; signal(SIGINT, SIG_DFL); signal(SIGTERM, SIG_DFL); From 9d4da2c7270ad7b20d0d79bd4ca71ee5d0ad1751 Mon Sep 17 00:00:00 2001 From: Michael R Sweet Date: Wed, 1 Jun 2022 07:12:04 -0400 Subject: [PATCH 03/15] Save work. --- tools/ipptool.c | 108 ++++++++++++++++++++++++------------------------ 1 file changed, 53 insertions(+), 55 deletions(-) diff --git a/tools/ipptool.c b/tools/ipptool.c index c3c1b69a1..1ad39b2c1 100644 --- a/tools/ipptool.c +++ b/tools/ipptool.c @@ -75,7 +75,7 @@ typedef enum ipptool_with_e /**** WITH flags ****/ typedef struct ipptool_expect_s /**** Expected attribute info ****/ { - int optional, /* Optional attribute? */ + bool optional, /* Optional attribute? */ not_expect, /* Don't expect attribute? */ expect_all; /* Expect all attributes to match/not match */ char *name, /* Attribute name */ @@ -89,8 +89,8 @@ typedef struct ipptool_expect_s /**** Expected attribute info ****/ *define_no_match, /* Variable to define on no-match */ *define_value, /* Variable to define with value */ *display_match; /* Message to display on a match */ - int repeat_limit, /* Maximum number of times to repeat */ - repeat_match, /* Repeat test on match */ + int repeat_limit; /* Maximum number of times to repeat */ + bool repeat_match, /* Repeat test on match */ repeat_no_match, /* Repeat test on no match */ with_distinct, /* WITH-DISTINCT-VALUES? */ with_flags; /* WITH flags */ @@ -120,8 +120,8 @@ typedef struct ipptool_status_s /**** Status info ****/ *define_match, /* Variable to define on match */ *define_no_match, /* Variable to define on no-match */ *define_value; /* Variable to define with value */ - int repeat_limit, /* Maximum number of times to repeat */ - repeat_match, /* Repeat the test when it does not match */ + int repeat_limit; /* Maximum number of times to repeat */ + bool repeat_match, /* Repeat the test when it does not match */ repeat_no_match; /* Repeat the test when it matches */ } ipptool_status_t; @@ -131,24 +131,24 @@ typedef struct ipptool_test_s /**** Test Data ****/ http_encryption_t encryption; /* Encryption for connection */ int family; /* Address family */ ipptool_output_t output; /* Output mode */ - int repeat_on_busy; /* Repeat tests on server-error-busy */ - int stop_after_include_error; + bool repeat_on_busy; /* Repeat tests on server-error-busy */ + bool stop_after_include_error; /* Stop after include errors? */ double timeout; /* Timeout for connection */ - int validate_headers, /* Validate HTTP headers in response? */ - verbosity; /* Show all attributes? */ + bool validate_headers; /* Validate HTTP headers in response? */ + int verbosity; /* Show all attributes? */ /* Test Defaults */ - int def_ignore_errors; /* Default IGNORE-ERRORS value */ + bool def_ignore_errors; /* Default IGNORE-ERRORS value */ ipptool_transfer_t def_transfer; /* Default TRANSFER value */ int def_version; /* Default IPP version */ /* Global State */ http_t *http; /* HTTP connection to printer/server */ cups_file_t *outfile; /* Output file */ - int show_header, /* Show the test header? */ - xml_header; /* 1 if XML plist header was written */ - bool pass; /* Have we passed all tests? */ + bool show_header, /* Show the test header? */ + xml_header, /* `true` if XML plist header was written */ + pass; /* Have we passed all tests? */ int test_count, /* Number of tests (total) */ pass_count, /* Number of tests that passed */ fail_count, /* Number of tests that failed */ @@ -168,13 +168,13 @@ typedef struct ipptool_test_s /**** Test Data ****/ *last_expect; /* Last EXPECT (for predicates) */ char file[1024], /* Data filename */ file_id[1024]; /* File identifier */ - int ignore_errors; /* Ignore test failures? */ + bool ignore_errors; /* Ignore test failures? */ char name[1024]; /* Test name */ char pause[1024]; /* PAUSE value */ useconds_t repeat_interval; /* Repeat interval (delay) */ int request_id; /* Current request ID */ char resource[512]; /* Resource for request */ - int pass_test, /* Pass this test? */ + bool pass_test, /* Pass this test? */ skip_test; /* Skip this test? */ size_t num_statuses; /* Number of valid status codes */ ipptool_status_t statuses[100], /* Valid status codes */ @@ -183,7 +183,7 @@ typedef struct ipptool_test_s /**** Test Data ****/ ipptool_transfer_t transfer; /* To chunk or not to chunk */ int version; /* IPP version number to use */ cups_thread_t monitor_thread; /* Monitoring thread ID */ - int monitor_done; /* Set to 1 to stop monitor thread */ + bool monitor_done; /* Set to `true` to stop monitor thread */ char *monitor_uri; /* MONITOR-PRINTER-STATE URI */ useconds_t monitor_delay, /* MONITOR-PRINTER-STATE DELAY value, if any */ monitor_interval; /* MONITOR-PRINTER-STATE DELAY interval */ @@ -293,10 +293,9 @@ main(int argc, /* I - Number of command-line args */ init_data(data); - _ippVarsInit(&vars, NULL, (_ipp_ferror_cb_t)error_cb, (_ipp_ftoken_cb_t)token_cb); - data->vars = &vars; + parent = ippFileOpen("/dev/null", "r", NULL, NULL, (ipp_ferror_cb_t)error_cb, data); - _ippVarsSet(data->vars, "date-start", iso_date(ippTimeToDate(time(NULL)))); + ippFileSetVar(parent, "date-start", iso_date(ippTimeToDate(time(NULL)))); /* * We need at least: @@ -498,7 +497,7 @@ main(int argc, /* I - Number of command-line args */ else value = name + strlen(name); - _ippVarsSet(data->vars, name, value); + ippFileSetVar(parent, name, value); break; case 'f' : /* Set the default test filename */ @@ -535,7 +534,7 @@ main(int argc, /* I - Number of command-line args */ else cupsCopyString(filename, argv[i], sizeof(filename)); - _ippVarsSet(data->vars, "filename", filename); + ippFileSetVar(parent, "filename", filename); if ((ext = strrchr(filename, '.')) != NULL) { @@ -544,43 +543,43 @@ main(int argc, /* I - Number of command-line args */ */ if (!_cups_strcasecmp(ext, ".gif")) - _ippVarsSet(data->vars, "filetype", "image/gif"); + ippFileSetVar(parent, "filetype", "image/gif"); else if (!_cups_strcasecmp(ext, ".htm") || !_cups_strcasecmp(ext, ".htm.gz") || !_cups_strcasecmp(ext, ".html") || !_cups_strcasecmp(ext, ".html.gz")) - _ippVarsSet(data->vars, "filetype", "text/html"); + ippFileSetVar(parent, "filetype", "text/html"); else if (!_cups_strcasecmp(ext, ".jpg") || !_cups_strcasecmp(ext, ".jpeg")) - _ippVarsSet(data->vars, "filetype", "image/jpeg"); + ippFileSetVar(parent, "filetype", "image/jpeg"); else if (!_cups_strcasecmp(ext, ".pcl") || !_cups_strcasecmp(ext, ".pcl.gz")) - _ippVarsSet(data->vars, "filetype", "application/vnd.hp-PCL"); + ippFileSetVar(parent, "filetype", "application/vnd.hp-PCL"); else if (!_cups_strcasecmp(ext, ".pdf")) - _ippVarsSet(data->vars, "filetype", "application/pdf"); + ippFileSetVar(parent, "filetype", "application/pdf"); else if (!_cups_strcasecmp(ext, ".png")) - _ippVarsSet(data->vars, "filetype", "image/png"); + ippFileSetVar(parent, "filetype", "image/png"); else if (!_cups_strcasecmp(ext, ".ps") || !_cups_strcasecmp(ext, ".ps.gz")) - _ippVarsSet(data->vars, "filetype", "application/postscript"); + ippFileSetVar(parent, "filetype", "application/postscript"); else if (!_cups_strcasecmp(ext, ".pwg") || !_cups_strcasecmp(ext, ".pwg.gz") || !_cups_strcasecmp(ext, ".ras") || !_cups_strcasecmp(ext, ".ras.gz")) - _ippVarsSet(data->vars, "filetype", "image/pwg-raster"); + ippFileSetVar(parent, "filetype", "image/pwg-raster"); else if (!_cups_strcasecmp(ext, ".tif") || !_cups_strcasecmp(ext, ".tiff")) - _ippVarsSet(data->vars, "filetype", "image/tiff"); + ippFileSetVar(parent, "filetype", "image/tiff"); else if (!_cups_strcasecmp(ext, ".txt") || !_cups_strcasecmp(ext, ".txt.gz")) - _ippVarsSet(data->vars, "filetype", "text/plain"); + ippFileSetVar(parent, "filetype", "text/plain"); else if (!_cups_strcasecmp(ext, ".urf") || !_cups_strcasecmp(ext, ".urf.gz")) - _ippVarsSet(data->vars, "filetype", "image/urf"); + ippFileSetVar(parent, "filetype", "image/urf"); else if (!_cups_strcasecmp(ext, ".xps")) - _ippVarsSet(data->vars, "filetype", "application/openxps"); + ippFileSetVar(parent, "filetype", "application/openxps"); else - _ippVarsSet(data->vars, "filetype", "application/octet-stream"); + ippFileSetVar(parent, "filetype", "application/octet-stream"); } else { @@ -588,7 +587,7 @@ main(int argc, /* I - Number of command-line args */ * Use the "auto-type" MIME media type... */ - _ippVarsSet(data->vars, "filetype", "application/octet-stream"); + ippFileSetVar(parent, "filetype", "application/octet-stream"); } break; @@ -686,7 +685,7 @@ main(int argc, /* I - Number of command-line args */ data->encryption = HTTP_ENCRYPTION_ALWAYS; #endif /* HAVE_TLS */ - if (!_ippVarsSet(data->vars, "uri", argv[i])) + if (!ippFileSetVar(parent, "uri", argv[i])) { _cupsLangPrintf(stderr, _("ipptool: Bad URI \"%s\"."), argv[i]); return (1); @@ -1076,7 +1075,7 @@ do_monitor_printer_state( { if (expect->define_no_match) { - _ippVarsSet(data->vars, expect->define_no_match, "1"); + ippFileSetVar(parent, expect->define_no_match, "1"); data->monitor_done = 1; } break; @@ -1089,7 +1088,7 @@ do_monitor_printer_state( { if (expect->define_no_match) { - _ippVarsSet(data->vars, expect->define_no_match, "1"); + ippFileSetVar(parent, expect->define_no_match, "1"); data->monitor_done = 1; } break; @@ -1099,7 +1098,7 @@ do_monitor_printer_state( { if (expect->define_no_match) { - _ippVarsSet(data->vars, expect->define_no_match, "1"); + ippFileSetVar(parent, expect->define_no_match, "1"); data->monitor_done = 1; } break; @@ -1110,7 +1109,7 @@ do_monitor_printer_state( if (found && expect->define_match) { - _ippVarsSet(data->vars, expect->define_match, "1"); + ippFileSetVar(parent, expect->define_match, "1"); data->monitor_done = 1; } @@ -1154,7 +1153,7 @@ do_monitor_printer_state( } } - _ippVarsSet(data->vars, expect->define_value, buffer); + ippFileSetVar(parent, expect->define_value, buffer); data->monitor_done = 1; } } @@ -1529,16 +1528,16 @@ do_test(_ipp_file_t *f, /* I - IPP data file */ if ((attrptr = ippFindAttribute(response, "job-id", IPP_TAG_INTEGER)) != NULL) { snprintf(temp, sizeof(temp), "%d", ippGetInteger(attrptr, 0)); - _ippVarsSet(data->vars, "job-id", temp); + ippFileSetVar(parent, "job-id", temp); } if ((attrptr = ippFindAttribute(response, "job-uri", IPP_TAG_URI)) != NULL) - _ippVarsSet(data->vars, "job-uri", ippGetString(attrptr, 0, NULL)); + ippFileSetVar(parent, "job-uri", ippGetString(attrptr, 0, NULL)); if ((attrptr = ippFindAttribute(response, "notify-subscription-id", IPP_TAG_INTEGER)) != NULL) { snprintf(temp, sizeof(temp), "%d", ippGetInteger(attrptr, 0)); - _ippVarsSet(data->vars, "notify-subscription-id", temp); + ippFileSetVar(parent, "notify-subscription-id", temp); } /* @@ -1702,7 +1701,7 @@ do_test(_ipp_file_t *f, /* I - IPP data file */ repeat_test = true; if (data->statuses[i].define_match) - _ippVarsSet(data->vars, data->statuses[i].define_match, "1"); + ippFileSetVar(parent, data->statuses[i].define_match, "1"); } else { @@ -1711,7 +1710,7 @@ do_test(_ipp_file_t *f, /* I - IPP data file */ if (data->statuses[i].define_no_match) { - _ippVarsSet(data->vars, data->statuses[i].define_no_match, "1"); + ippFileSetVar(parent, data->statuses[i].define_no_match, "1"); status_ok = true; } } @@ -1777,7 +1776,7 @@ do_test(_ipp_file_t *f, /* I - IPP data file */ (expect->with_distinct && !with_distinct_values(NULL, found))) { if (expect->define_no_match) - _ippVarsSet(data->vars, expect->define_no_match, "1"); + ippFileSetVar(parent, expect->define_no_match, "1"); else if (!expect->define_match && !expect->define_value) { if (found && expect->not_expect && !expect->with_value && !expect->with_value_from) @@ -1812,7 +1811,7 @@ do_test(_ipp_file_t *f, /* I - IPP data file */ if (found && expect->with_value_from && !with_value_from(NULL, ippFindAttribute(response, expect->with_value_from, IPP_TAG_ZERO), found, data->buffer, sizeof(data->buffer))) { if (expect->define_no_match) - _ippVarsSet(data->vars, expect->define_no_match, "1"); + ippFileSetVar(parent, expect->define_no_match, "1"); else if (!expect->define_match && !expect->define_value && ((!expect->repeat_match && !expect->repeat_no_match) || repeat_count >= expect->repeat_limit)) { add_stringf(data->errors, "EXPECTED: %s WITH-VALUES-FROM %s", expect->name, expect->with_value_from); @@ -1828,7 +1827,7 @@ do_test(_ipp_file_t *f, /* I - IPP data file */ else if (found && !with_value(data, NULL, expect->with_value, expect->with_flags, found, data->buffer, sizeof(data->buffer))) { if (expect->define_no_match) - _ippVarsSet(data->vars, expect->define_no_match, "1"); + ippFileSetVar(parent, expect->define_no_match, "1"); else if (!expect->define_match && !expect->define_value && !expect->repeat_match && (!expect->repeat_no_match || repeat_count >= expect->repeat_limit)) { @@ -1849,7 +1848,7 @@ do_test(_ipp_file_t *f, /* I - IPP data file */ if (found && expect->count > 0 && ippGetCount(found) != expect->count) { if (expect->define_no_match) - _ippVarsSet(data->vars, expect->define_no_match, "1"); + ippFileSetVar(parent, expect->define_no_match, "1"); else if (!expect->define_match && !expect->define_value) { add_stringf(data->errors, "EXPECTED: %s COUNT %u (got %u)", expect->name, (unsigned)expect->count, (unsigned)ippGetCount(found)); @@ -1869,7 +1868,7 @@ do_test(_ipp_file_t *f, /* I - IPP data file */ if (!attrptr || ippGetCount(attrptr) != ippGetCount(found)) { if (expect->define_no_match) - _ippVarsSet(data->vars, expect->define_no_match, "1"); + ippFileSetVar(parent, expect->define_no_match, "1"); else if (!expect->define_match && !expect->define_value) { if (!attrptr) @@ -1889,7 +1888,7 @@ do_test(_ipp_file_t *f, /* I - IPP data file */ cupsFilePrintf(cupsFileStdout(), "\n%s\n\n", expect->display_match); if (found && expect->define_match) - _ippVarsSet(data->vars, expect->define_match, "1"); + ippFileSetVar(parent, expect->define_match, "1"); if (found && expect->define_value) { @@ -1946,11 +1945,10 @@ do_test(_ipp_file_t *f, /* I - IPP data file */ } } - _ippVarsSet(data->vars, expect->define_value, data->buffer); + ippFileSetVar(parent, expect->define_value, data->buffer); } - if (found && expect->repeat_match && - repeat_count < expect->repeat_limit) + if (found && expect->repeat_match && repeat_count < expect->repeat_limit) repeat_test = 1; } while (expect->expect_all && (found = ippFindNextAttribute(response, expect->name, IPP_TAG_ZERO)) != NULL); From 46a29a535a6c74aaeecd42bd8d591f112c83df95 Mon Sep 17 00:00:00 2001 From: Michael R Sweet Date: Wed, 1 Jun 2022 18:31:38 -0400 Subject: [PATCH 04/15] Save work. --- cups/ipp-file.c | 374 +++++++++---- cups/ipp.h | 11 +- tools/ipptool.c | 1391 ++++++++++++++++++++++++----------------------- 3 files changed, 988 insertions(+), 788 deletions(-) diff --git a/cups/ipp-file.c b/cups/ipp-file.c index b06f314d1..711ab6b28 100644 --- a/cups/ipp-file.c +++ b/cups/ipp-file.c @@ -9,9 +9,7 @@ // information. // -#include "cups.h" -#include "http-private.h" -#include "string-private.h" +#include "cups-private.h" #include "debug-internal.h" @@ -21,12 +19,15 @@ struct _ipp_file_s // IPP data file { + ipp_file_t *parent; // Parent data file, if any cups_file_t *fp; // File pointer char *filename, // Filename mode; // Read/write mode int indent, // Current indentation column, // Current column - linenum; // Current line number + linenum, // Current line number + save_line; // Saved line number + off_t save_pos; // Saved position ipp_tag_t group_tag; // Current group for attributes ipp_t *attrs; // Current attributes size_t num_vars; // Number of variables @@ -54,8 +55,8 @@ static bool write_string(ipp_file_t *file, const char *s, size_t len); // // 'ippFileClose()' - Close an IPP data file. // -// This function closes an IPP data file and frees all memory associated with -// it. +// This function closes the current IPP data file. The `ipp_file_t` object can +// be reused for another file as needed. // bool // O - `true` on success, `false` on error @@ -64,17 +65,51 @@ ippFileClose(ipp_file_t *file) // I - IPP data file bool ret; // Return value - if (!file) + if (!file || !file->fp) return (false); - ret = cupsFileClose(file->fp); + if ((ret = cupsFileClose(file->fp)) == false) + _cupsSetError(IPP_STATUS_ERROR_INTERNAL, strerror(errno), 0); free(file->filename); + ippDelete(file->attrs); + + file->fp = NULL; + file->filename = NULL; + file->mode = '\0'; + file->attrs = NULL; + + return (ret); +} + + +// +// 'ippFileDelete()' - Close an IPP data file and free all memory. +// +// This function closes an IPP data file, if necessary, and frees all memory +// associated with it. +// + +bool // O - `true` on success, `false` on error +ippFileDelete(ipp_file_t *file) // I - IPP data file +{ + if (!file) + { + _cupsSetError(IPP_STATUS_ERROR_INTERNAL, strerror(EINVAL), 0); + return (false); + } + + if (file->fp) + { + if (!ippFileClose(file)) + return (false); + } + cupsFreeOptions(file->num_vars, file->vars); free(file->buffer); free(file); - return (ret); + return (true); } @@ -99,6 +134,14 @@ ippFileExpandVars(ipp_file_t *file, // I - IPP data file const char *value; // Value to substitute + // Range check input... + if (!file || !dst || !src || dstsize < 32) + { + _cupsSetError(IPP_STATUS_ERROR_INTERNAL, strerror(EINVAL), 0); + return (false); + } + + // Copy the source string to the destination, expanding variables as needed... dstptr = dst; dstend = dst + dstsize - 1; @@ -106,17 +149,16 @@ ippFileExpandVars(ipp_file_t *file, // I - IPP data file { if (*src == '$') { - /* - * Substitute a string/number... - */ - + // Substitute a string/number... if (!strncmp(src, "$$", 2)) { + // Literal $ value = "$"; src += 2; } else if (!strncmp(src, "$ENV[", 5)) { + // Environment variable cupsCopyString(temp, src + 5, sizeof(temp)); for (tempptr = temp; *tempptr; tempptr ++) @@ -133,6 +175,7 @@ ippFileExpandVars(ipp_file_t *file, // I - IPP data file } else { + // $name or ${name} if (src[1] == '{') { src += 2; @@ -157,13 +200,13 @@ ippFileExpandVars(ipp_file_t *file, // I - IPP data file } value = ippFileGetVar(file, temp); - - src += tempptr - temp + 1; + src += tempptr - temp + 1; } if (value) { - cupsCopyString(dstptr, value, (size_t)(dstend - dstptr + 1)); + if (dstptr < dstend) + cupsCopyString(dstptr, value, (size_t)(dstend - dstptr + 1)); dstptr += strlen(value); } } @@ -182,6 +225,28 @@ ippFileExpandVars(ipp_file_t *file, // I - IPP data file } +// +// 'ippFileGetAttribute()' - Get a single named attribute from an IPP data file. +// +// This function finds the first occurence of a named attribute in the current +// IPP attributes in the specified data file. Unlike +// @link ippFileGetAttributes@, this function does not clear the attribute +// state. +// + +ipp_attribute_t * // O - Attribute or `NULL` if none +ippFileGetAttribute( + ipp_file_t *file, // I - IPP data file + const char *name, // I - Attribute name + ipp_tag_t value_tag) // I - Value tag or `IPP_TAG_ZERO` for any +{ + if (!file || !name) + return (NULL); + else + return (ippFindAttribute(file->attrs, name, value_tag)); +} + + // // 'ippFileGetAttributes()' - Get the current set of attributes from an IPP data file. // @@ -197,7 +262,9 @@ ippFileGetAttributes(ipp_file_t *file) // I - IPP data file { ipp_t *attrs = file->attrs; // IPP attributes - file->attrs = NULL; + file->attrs = NULL; + file->group_tag = IPP_TAG_ZERO; + return (attrs); } else @@ -244,17 +311,24 @@ const char * // O - Variable value or `NULL` if none. ippFileGetVar(ipp_file_t *file, // I - IPP data file const char *name) // I - Variable name { + const char *value; // Value + + if (!file || !name) return (NULL); else if (!strcmp(name, "user")) return (cupsGetUser()); + else if ((value = cupsGetOption(name, file->num_vars, file->vars)) != NULL) + return (value); + else if (file->parent) + return (cupsGetOption(name, file->parent->num_vars, file->parent->vars)); else - return (cupsGetOption(name, file->num_vars, file->vars)); + return (NULL); } // -// 'ippFileOpen()' - Open an IPP data file for reading or writing. +// 'ippFileNew()' - Create a new IPP data file object for reading or writing. // // This function opens an IPP data file for reading (mode="r") or writing // (mode="w"). If the "parent" argument is not `NULL`, all variables from the @@ -262,47 +336,71 @@ ippFileGetVar(ipp_file_t *file, // I - IPP data file // ipp_file_t * // O - IPP data file -ippFileOpen(const char *filename, // I - Filename to open - const char *mode, // I - Open mode - "r" to read and "w" to write - ipp_file_t *parent, // I - Parent data file or `NULL` for none - ipp_fattr_cb_t attr_cb, // I - Attribute filtering callback, if any - ipp_ferror_cb_t error_cb, // I - Error reporting callback, if any - void *cb_data) // I - Callback data, if any +ippFileNew(ipp_file_t *parent, // I - Parent data file or `NULL` for none + ipp_fattr_cb_t attr_cb, // I - Attribute filtering callback, if any + ipp_ferror_cb_t error_cb, // I - Error reporting callback, if any + void *cb_data) // I - Callback data, if any { - cups_file_t *fp; // IPP data file pointer ipp_file_t *file; // IPP data file - if (!filename || !mode || (strcmp(mode, "r") && strcmp(mode, "w"))) - return (NULL); - - if ((fp = cupsFileOpen(filename, mode)) == NULL) - return (NULL); - + // Allocate memory... if ((file = (ipp_file_t *)calloc(1, sizeof(ipp_file_t))) == NULL) - { - cupsFileClose(fp); return (NULL); - } - file->fp = fp; - file->filename = strdup(filename); - file->mode = *mode; - file->linenum = 1; + // Set callbacks and parent... + file->parent = parent; file->attr_cb = attr_cb; file->error_cb = error_cb; file->cb_data = cb_data; - if (parent) + return (file); +} + + +// +// 'ippFileOpen()' - Open an IPP data file for reading or writing. +// +// This function opens an IPP data file for reading (mode="r") or writing +// (mode="w"). If the "parent" argument is not `NULL`, all variables from the +// parent data file are copied to the new file. +// + +bool // O - `true` on success, `false` on error +ippFileOpen(ipp_file_t *file, // I - IPP data file + const char *filename, // I - Filename to open + const char *mode) // I - Open mode - "r" to read and "w" to write +{ + cups_file_t *fp; // IPP data file pointer + + + // Range check input... + if (!file || !filename || !mode || (strcmp(mode, "r") && strcmp(mode, "w"))) + { + _cupsSetError(IPP_STATUS_ERROR_INTERNAL, strerror(EINVAL), 0); + return (false); + } + else if (file->fp) { - size_t count; // Looping var - cups_option_t *var; // Current variable + _cupsSetError(IPP_STATUS_ERROR_INTERNAL, strerror(EBUSY), 0); + return (false); + } - for (count = parent->num_vars, var = parent->vars; count > 0; count --, var ++) - file->num_vars = cupsAddOption(var->name, var->value, file->num_vars, &file->vars); + // Try opening the file... + if ((fp = cupsFileOpen(filename, mode)) == NULL) + { + _cupsSetError(IPP_STATUS_ERROR_INTERNAL, strerror(errno), 0); + return (false); } - return (file); + // Save the file information and return... + file->fp = fp; + file->filename = strdup(filename); + file->mode = *mode; + file->column = 0; + file->linenum = 1; + + return (true); } @@ -318,17 +416,22 @@ ippFileRead(ipp_file_t *file, // I - IPP data file ipp_attribute_t *attr = NULL; // Current attribute char token[1024]; // Token string ipp_t *ignored = NULL; // Ignored attributes + bool ret = true; // Return value // Range check input if (!file || file->mode != 'r') + { + _cupsSetError(IPP_STATUS_ERROR_INTERNAL, strerror(EINVAL), 0); return (false); + } // Read data file, using the callback function as needed... while (ippFileReadToken(file, token, sizeof(token))) { if (!_cups_strcasecmp(token, "DEFINE") || !_cups_strcasecmp(token, "DEFINE-DEFAULT")) { + // Define a variable... char name[128], // Variable name value[1024], // Variable value temp[1024]; // Temporary string @@ -346,15 +449,13 @@ ippFileRead(ipp_file_t *file, // I - IPP data file else { report_error(file, "Missing %s name and/or value on line %d of \"%s\".", token, file->linenum, file->filename); + ret = false; break; } } else if (file->attrs && !_cups_strcasecmp(token, "ATTR")) { - /* - * Attribute definition... - */ - + // Attribute definition... char syntax[128], // Attribute syntax (value tag) name[128]; // Attribute name ipp_tag_t value_tag; // Value tag @@ -364,34 +465,31 @@ ippFileRead(ipp_file_t *file, // I - IPP data file if (!ippFileReadToken(file, syntax, sizeof(syntax))) { report_error(file, "Missing ATTR syntax on line %d of \"%s\".", file->linenum, file->filename); + ret = false; break; } else if ((value_tag = ippTagValue(syntax)) < IPP_TAG_UNSUPPORTED_VALUE) { report_error(file, "Bad ATTR syntax \"%s\" on line %d of \"%s\".", syntax, file->linenum, file->filename); + ret = false; break; } if (!ippFileReadToken(file, name, sizeof(name)) || !name[0]) { report_error(file, "Missing ATTR name on line %d of \"%s\".", file->linenum, file->filename); + ret = false; break; } if (!file->attr_cb || (*file->attr_cb)(file, file->cb_data, name)) { - /* - * Add this attribute... - */ - + // Add this attribute... attrs = file->attrs; } else { - /* - * Ignore this attribute... - */ - + // Ignore this attribute... if (!ignored) ignored = ippNew(); @@ -400,52 +498,52 @@ ippFileRead(ipp_file_t *file, // I - IPP data file if (value_tag < IPP_TAG_INTEGER) { - /* - * Add out-of-band attribute - no value string needed... - */ - + // Add out-of-band attribute - no value string needed... ippAddOutOfBand(attrs, file->group_tag, value_tag, name); } else { - /* - * Add attribute with one or more values... - */ - + // Add attribute with one or more values... attr = ippAddString(attrs, file->group_tag, value_tag, name, NULL, NULL); if (!parse_value(file, attrs, &attr, 0)) + { + ret = false; break; + } } - } else if (attr && !_cups_strcasecmp(token, ",")) { - /* - * Additional value... - */ - + // Additional value... if (!parse_value(file, attrs, &attr, ippGetCount(attr))) + { + ret = false; break; + } } else { - /* - * Something else... - */ - + // Something else... attr = NULL; attrs = NULL; - if (!token_cb || !(token_cb)(file, file->cb_data, token)) + if (!token_cb) + { + ret = false; + break; + } + else if ((ret = (token_cb)(file, file->cb_data, token)) == false) + { break; + } } } // Free any ignored attributes and return... ippDelete(ignored); - return (true); + return (ret); } @@ -470,6 +568,8 @@ ippFileReadToken(ipp_file_t *file, // I - IPP data file // Range check input... if (!file || !token || tokensize < 32) { + _cupsSetError(IPP_STATUS_ERROR_INTERNAL, strerror(EINVAL), 0); + if (token) *token = '\0'; @@ -634,6 +734,52 @@ ippFileReadToken(ipp_file_t *file, // I - IPP data file } +// +// 'ippFileRestorePosition()' - Restore the previous position in an IPP data file. +// +// This function restores the previous position in an IPP data file that is open +// for reading. +// + +bool // O - `true` on success, `false` on failure +ippFileRestorePosition(ipp_file_t *file)// I - IPP data file +{ + // Range check input... + if (!file || file->mode != 'r' || file->save_line == 0) + return (false); + + // Seek back to the saved position... + cupsFileSeek(file->fp, file->save_pos); + file->linenum = file->save_line; + file->save_pos = 0; + file->save_line = 0; + + return (true); +} + + +// +// 'ippFileSavePosition()' - Save the current position in an IPP data file. +// +// This function saves the current position in an IPP data file that is open +// for reading. +// + +bool // O - `true` on success, `false` on failure +ippFileSavePosition(ipp_file_t *file) // I - IPP data file +{ + // Range check input... + if (!file || file->mode != 'r') + return (false); + + // Save the current position... + file->save_pos = cupsFileTell(file->fp); + file->save_line = file->linenum; + + return (true); +} + + // // 'ippFileSetVar()' - Set an IPP data file variable to a constant value. // @@ -642,13 +788,16 @@ ippFileReadToken(ipp_file_t *file, // I - IPP data file // "port", and "resource" variables. // -void +bool // O - `true` on success, `false` on failure ippFileSetVar(ipp_file_t *file, // I - IPP data file const char *name, // I - Variable name const char *value) // I - Value { if (!file || !name || !value) - return; + { + _cupsSetError(IPP_STATUS_ERROR_INTERNAL, strerror(EINVAL), 0); + return (false); + } // Save new variable... if (!strcmp(name, "uri")) @@ -662,21 +811,36 @@ ippFileSetVar(ipp_file_t *file, // I - IPP data file hostname[256], // URI hostname resource[256]; // URI resource path int port; // URI port number + http_uri_status_t uri_status; // URI decoding status if (strstr(value, "._tcp")) { // Resolve URI... if (!_httpResolveURI(value, resolved, sizeof(resolved), _HTTP_RESOLVE_DEFAULT, NULL, NULL)) - return; + { + _cupsSetError(IPP_STATUS_ERROR_INTERNAL, strerror(ENOENT), 0); + return (false); + } value = resolved; } - if (httpSeparateURI(HTTP_URI_CODING_ALL, value, scheme, sizeof(scheme), userpass, sizeof(userpass), hostname, sizeof(hostname), &port, resource, sizeof(resource)) >= HTTP_URI_STATUS_OK) + if ((uri_status = httpSeparateURI(HTTP_URI_CODING_ALL, value, scheme, sizeof(scheme), userpass, sizeof(userpass), hostname, sizeof(hostname), &port, resource, sizeof(resource))) < HTTP_URI_STATUS_OK) + { + // Bad URI... + _cupsSetError(IPP_STATUS_ERROR_INTERNAL, httpURIStatusString(uri_status), 0); + return (false); + } + else { // Valid URI... if ((password = strchr(userpass, ':')) != NULL) - *password = '\0'; + { + // Separate and save password from URI... + *password++ = '\0'; + + file->num_vars = cupsAddOption("uripassword", password, file->num_vars, &file->vars); + } file->num_vars = cupsAddOption("scheme", scheme, file->num_vars, &file->vars); file->num_vars = cupsAddOption("uriuser", userpass, file->num_vars, &file->vars); @@ -684,6 +848,7 @@ ippFileSetVar(ipp_file_t *file, // I - IPP data file file->num_vars = cupsAddIntegerOption("port", port, file->num_vars, &file->vars); file->num_vars = cupsAddOption("resource", resource, file->num_vars, &file->vars); + // Reassemble URI without username or password... httpAssembleURI(HTTP_URI_CODING_ALL, uri, sizeof(uri), scheme, NULL, hostname, port, resource); file->num_vars = cupsAddOption("uri", uri, file->num_vars, &file->vars); } @@ -693,6 +858,8 @@ ippFileSetVar(ipp_file_t *file, // I - IPP data file // Set another variable... file->num_vars = cupsAddOption(name, value, file->num_vars, &file->vars); } + + return (true); } @@ -704,7 +871,7 @@ ippFileSetVar(ipp_file_t *file, // I - IPP data file // "port", and "resource" variables. // -void +bool // O - `true` on success, `false` on error ippFileSetVarf(ipp_file_t *file, // I - IPP data file const char *name, // I - Variable name const char *value, // I - Printf-style value @@ -715,13 +882,16 @@ ippFileSetVarf(ipp_file_t *file, // I - IPP data file if (!file || !name || !value) - return; + { + _cupsSetError(IPP_STATUS_ERROR_INTERNAL, strerror(EINVAL), 0); + return (false); + } va_start(ap, value); vsnprintf(buffer, sizeof(buffer), value, ap); va_end(ap); - ippFileSetVar(file, name, buffer); + return (ippFileSetVar(file, name, buffer)); } @@ -751,7 +921,10 @@ ippFileWriteAttributes( // Range check input... if (!file || file->mode != 'w' || !ipp) + { + _cupsSetError(IPP_STATUS_ERROR_INTERNAL, strerror(EINVAL), 0); return (false); + } // Make sure we are on a new line... if (file->column) @@ -915,7 +1088,10 @@ ippFileWriteComment(ipp_file_t *file, // I - IPP data file // Range check input... if (!file || file->mode != 'w' || !comment) + { + _cupsSetError(IPP_STATUS_ERROR_INTERNAL, strerror(EINVAL), 0); return (false); + } // Format the comment... va_start(ap, comment); @@ -975,7 +1151,10 @@ ippFileWriteToken(ipp_file_t *file, // I - IPP data file // Range check input... if (!file || file->mode != 'w' || !token) + { + _cupsSetError(IPP_STATUS_ERROR_INTERNAL, strerror(EINVAL), 0); return (false); + } // Handle indentation... if (!strcmp(token, "}")) @@ -1067,7 +1246,10 @@ ippFileWriteTokenf(ipp_file_t *file, // I - IPP data file // Range check input... if (!file || file->mode != 'w' || !token) + { + _cupsSetError(IPP_STATUS_ERROR_INTERNAL, strerror(EINVAL), 0); return (false); + } // Format the message... va_start(ap, token); @@ -1247,21 +1429,21 @@ parse_value(ipp_file_t *file, // I - IPP data file case IPP_TAG_DATE : { - int year, // Year - month, // Month - day, // Day of month - hour, // Hour - minute, // Minute - second, // Second - utc_offset = 0; // Timezone offset from UTC - ipp_uchar_t date[11]; // dateTime value + int year, // Year + month, // Month + day, // Day of month + hour, // Hour + minute, // Minute + second, // Second + utc_offset = 0; // Timezone offset from UTC + ipp_uchar_t date[11]; // dateTime value if (*value == 'P') { // Time period... time_t curtime; // Current time in seconds - int period = 0, // Current period value - saw_T = 0; // Saw time separator + int period = 0; // Current period value + bool saw_T = false; // Saw time separator? curtime = time(NULL); @@ -1309,7 +1491,7 @@ parse_value(ipp_file_t *file, // I - IPP data file } else if (*valueptr == 'T') { - saw_T = 1; + saw_T = true; period = 0; } else @@ -1494,7 +1676,7 @@ report_error( return ((*file->error_cb)(file, file->cb_data, buffer)); fprintf(stderr, "%s\n", buffer); - return (true); + return (false); } diff --git a/cups/ipp.h b/cups/ipp.h index b51c7a7fb..5cc18da06 100644 --- a/cups/ipp.h +++ b/cups/ipp.h @@ -572,16 +572,21 @@ extern const char *ippErrorString(ipp_status_t error) _CUPS_PUBLIC; extern ipp_status_t ippErrorValue(const char *name) _CUPS_PUBLIC; extern bool ippFileClose(ipp_file_t *file) _CUPS_PUBLIC; +extern bool ippFileDelete(ipp_file_t *file) _CUPS_PUBLIC; extern size_t ippFileExpandVars(ipp_file_t *file, char *dst, const char *src, size_t dstsize) _CUPS_PUBLIC; +extern ipp_attribute_t *ippFileGetAttribute(ipp_file_t *file, const char *name, ipp_tag_t value_tag) _CUPS_PUBLIC; extern ipp_t *ippFileGetAttributes(ipp_file_t *file) _CUPS_PUBLIC; extern const char *ippFileGetFilename(ipp_file_t *file) _CUPS_PUBLIC; extern int ippFileGetLineNumber(ipp_file_t *file) _CUPS_PUBLIC; extern const char *ippFileGetVar(ipp_file_t *file, const char *name) _CUPS_PUBLIC; -extern ipp_file_t *ippFileOpen(const char *filename, const char *mode, ipp_file_t *parent, ipp_fattr_cb_t attr_cb, ipp_ferror_cb_t error_cb, void *cb_data) _CUPS_PUBLIC; +extern ipp_file_t *ippFileNew(ipp_file_t *parent, ipp_fattr_cb_t attr_cb, ipp_ferror_cb_t error_cb, void *cb_data) _CUPS_PUBLIC; +extern bool ippFileOpen(ipp_file_t *file, const char *filename, const char *mode) _CUPS_PUBLIC; extern bool ippFileRead(ipp_file_t *file, ipp_ftoken_cb_t token_cb) _CUPS_PUBLIC; extern bool ippFileReadToken(ipp_file_t *file, char *token, size_t tokensize) _CUPS_PUBLIC; -extern void ippFileSetVar(ipp_file_t *file, const char *name, const char *value) _CUPS_PUBLIC; -extern void ippFileSetVarf(ipp_file_t *file, const char *name, const char *value, ...) _CUPS_FORMAT(3,4) _CUPS_PUBLIC; +extern bool ippFileRestorePosition(ipp_file_t *file) _CUPS_PUBLIC; +extern bool ippFileSavePosition(ipp_file_t *file) _CUPS_PUBLIC; +extern bool ippFileSetVar(ipp_file_t *file, const char *name, const char *value) _CUPS_PUBLIC; +extern bool ippFileSetVarf(ipp_file_t *file, const char *name, const char *value, ...) _CUPS_FORMAT(3,4) _CUPS_PUBLIC; extern bool ippFileWriteAttributes(ipp_file_t *file, ipp_t *ipp, bool with_groups) _CUPS_PUBLIC; extern bool ippFileWriteComment(ipp_file_t *file, const char *comment, ...) _CUPS_FORMAT(2,3) _CUPS_PUBLIC; extern bool ippFileWriteToken(ipp_file_t *file, const char *token) _CUPS_PUBLIC; diff --git a/tools/ipptool.c b/tools/ipptool.c index 1ad39b2c1..0da949577 100644 --- a/tools/ipptool.c +++ b/tools/ipptool.c @@ -128,6 +128,8 @@ typedef struct ipptool_status_s /**** Status info ****/ typedef struct ipptool_test_s /**** Test Data ****/ { /* Global Options */ + ipp_file_t *parent; // Parent IPP data file values + int password_tries; // Number of password attempts http_encryption_t encryption; /* Encryption for connection */ int family; /* Address family */ ipptool_output_t output; /* Output mode */ @@ -191,7 +193,8 @@ typedef struct ipptool_test_s /**** Test Data ****/ ipptool_expect_t monitor_expects[MAX_MONITOR]; /* MONITOR-PRINTER-STATE EXPECTs */ ipptool_generate_t *generate_params; /* GENERATE-FILE parameters */ - char buffer[1024 * 1024]; /* Output buffer */ + char *buffer; // Output buffer + size_t alloc_buffer; // Size of output buffer } ipptool_test_t; @@ -207,20 +210,23 @@ static bool Cancel = false; /* Cancel test? */ */ static void add_stringf(cups_array_t *a, const char *s, ...) _CUPS_FORMAT(2, 3); -static int compare_uris(const char *a, const char *b); +static ipptool_test_t *alloc_data(void); +static int compare_uris(const char *a, const char *b); +static http_t *connect_printer(ipptool_test_t *data); static void copy_hex_string(char *buffer, unsigned char *data, int datalen, size_t bufsize); static void *do_monitor_printer_state(ipptool_test_t *data); -static int do_test(ipp_file_t *file, ipptool_test_t *data); -static int do_tests(const char *testfile, ipptool_test_t *data); -static int error_cb(ipp_file_t *f, ipptool_test_t *data, const char *error); -static int expect_matches(ipptool_expect_t *expect, ipp_attribute_t *attr); +static bool do_test(ipp_file_t *file, ipptool_test_t *data); +static bool do_tests(const char *testfile, ipptool_test_t *data); +static bool error_cb(ipp_file_t *f, ipptool_test_t *data, const char *error); +static bool expect_matches(ipptool_expect_t *expect, ipp_attribute_t *attr); +static void free_data(ipptool_test_t *data); static http_status_t generate_file(http_t *http, ipptool_generate_t *params); static char *get_filename(const char *testfile, char *dst, const char *src, size_t dstsize); static const char *get_string(ipp_attribute_t *attr, size_t element, int flags, char *buffer, size_t bufsize); -static void init_data(ipptool_test_t *data); static char *iso_date(const ipp_uchar_t *date); -static int parse_generate_file(ipp_file_t *f, ipptool_test_t *data); -static int parse_monitor_printer_state(ipp_file_t *f, ipptool_test_t *data); +static bool parse_generate_file(ipp_file_t *f, ipptool_test_t *data); +static bool parse_monitor_printer_state(ipp_file_t *f, ipptool_test_t *data); +static const char *password_cb(const char *prompt, http_t *http, const char *method, const char *resource, void *user_data); static void pause_message(const char *message); static void print_attr(cups_file_t *outfile, ipptool_output_t output, ipp_attribute_t *attr, ipp_tag_t *group); static ipp_attribute_t *print_csv(ipptool_test_t *data, ipp_t *ipp, ipp_attribute_t *attr, int num_displayed, char **displayed, size_t *widths); @@ -237,12 +243,12 @@ static void print_xml_trailer(ipptool_test_t *data, int success, const char *mes static void sigterm_handler(int sig); #endif /* _WIN32 */ static bool timeout_cb(http_t *http, void *user_data); -static int token_cb(ipp_file_t *f, ipptool_test_t *data, const char *token); +static bool token_cb(ipp_file_t *f, ipptool_test_t *data, const char *token); static void usage(void) _CUPS_NORETURN; -static int with_distinct_values(cups_array_t *errors, ipp_attribute_t *attr); +static bool with_distinct_values(cups_array_t *errors, ipp_attribute_t *attr); static const char *with_flags_string(int flags); -static int with_value(ipptool_test_t *data, cups_array_t *errors, char *value, int flags, ipp_attribute_t *attr, char *matchbuf, size_t matchlen); -static int with_value_from(cups_array_t *errors, ipp_attribute_t *fromattr, ipp_attribute_t *attr, char *matchbuf, size_t matchlen); +static bool with_value(ipptool_test_t *data, cups_array_t *errors, char *value, int flags, ipp_attribute_t *attr, char *matchbuf, size_t matchlen); +static bool with_value_from(cups_array_t *errors, ipp_attribute_t *fromattr, ipp_attribute_t *attr, char *matchbuf, size_t matchlen); /* @@ -264,7 +270,6 @@ main(int argc, /* I - Number of command-line args */ *testfile; /* Test file to use */ int interval, /* Test interval in microseconds */ repeat; /* Repeat count */ - ipp_file_t *parent; // Parent IPP data file variables ipptool_test_t *data; // Test data _cups_globals_t *cg = _cupsGlobals(); // Global data @@ -285,17 +290,7 @@ main(int argc, /* I - Number of command-line args */ _cupsSetLocale(argv); - if ((data = (ipptool_test_t *)calloc(1, sizeof(ipptool_test_t))) == NULL) - { - perror("ipptool: Unable to allocate memory for tests"); - return (1); - } - - init_data(data); - - parent = ippFileOpen("/dev/null", "r", NULL, NULL, (ipp_ferror_cb_t)error_cb, data); - - ippFileSetVar(parent, "date-start", iso_date(ippTimeToDate(time(NULL)))); + data = alloc_data(); /* * We need at least: @@ -341,6 +336,7 @@ main(int argc, /* I - Number of command-line args */ } else if (!strcmp(argv[i], "--version")) { + free_data(data); puts(LIBCUPS_VERSION); return (0); } @@ -365,12 +361,7 @@ main(int argc, /* I - Number of command-line args */ break; case 'E' : /* Encrypt with TLS */ -#ifdef HAVE_TLS data->encryption = HTTP_ENCRYPTION_REQUIRED; -#else - _cupsLangPrintf(stderr, _("%s: Sorry, no encryption support."), - argv[0]); -#endif /* HAVE_TLS */ break; case 'I' : /* Ignore errors */ @@ -413,11 +404,7 @@ main(int argc, /* I - Number of command-line args */ break; case 'S' : /* Encrypt with SSL */ -#ifdef HAVE_TLS data->encryption = HTTP_ENCRYPTION_ALWAYS; -#else - _cupsLangPrintf(stderr, _("%s: Sorry, no encryption support."), "ipptool"); -#endif /* HAVE_TLS */ break; case 'T' : /* Set timeout */ @@ -497,7 +484,7 @@ main(int argc, /* I - Number of command-line args */ else value = name + strlen(name); - ippFileSetVar(parent, name, value); + ippFileSetVar(data->parent, name, value); break; case 'f' : /* Set the default test filename */ @@ -534,60 +521,44 @@ main(int argc, /* I - Number of command-line args */ else cupsCopyString(filename, argv[i], sizeof(filename)); - ippFileSetVar(parent, "filename", filename); + ippFileSetVar(data->parent, "filename", filename); if ((ext = strrchr(filename, '.')) != NULL) { - /* - * Guess the MIME media type based on the extension... - */ - + // Guess the MIME media type based on the extension... if (!_cups_strcasecmp(ext, ".gif")) - ippFileSetVar(parent, "filetype", "image/gif"); - else if (!_cups_strcasecmp(ext, ".htm") || - !_cups_strcasecmp(ext, ".htm.gz") || - !_cups_strcasecmp(ext, ".html") || - !_cups_strcasecmp(ext, ".html.gz")) - ippFileSetVar(parent, "filetype", "text/html"); - else if (!_cups_strcasecmp(ext, ".jpg") || - !_cups_strcasecmp(ext, ".jpeg")) - ippFileSetVar(parent, "filetype", "image/jpeg"); - else if (!_cups_strcasecmp(ext, ".pcl") || - !_cups_strcasecmp(ext, ".pcl.gz")) - ippFileSetVar(parent, "filetype", "application/vnd.hp-PCL"); + ippFileSetVar(data->parent, "filetype", "image/gif"); + else if (!_cups_strcasecmp(ext, ".htm") || !_cups_strcasecmp(ext, ".htm.gz") || !_cups_strcasecmp(ext, ".html") || !_cups_strcasecmp(ext, ".html.gz")) + ippFileSetVar(data->parent, "filetype", "text/html"); + else if (!_cups_strcasecmp(ext, ".jpg") || !_cups_strcasecmp(ext, ".jpeg")) + ippFileSetVar(data->parent, "filetype", "image/jpeg"); + else if (!_cups_strcasecmp(ext, ".pcl") || !_cups_strcasecmp(ext, ".pcl.gz")) + ippFileSetVar(data->parent, "filetype", "application/vnd.hp-PCL"); else if (!_cups_strcasecmp(ext, ".pdf")) - ippFileSetVar(parent, "filetype", "application/pdf"); + ippFileSetVar(data->parent, "filetype", "application/pdf"); else if (!_cups_strcasecmp(ext, ".png")) - ippFileSetVar(parent, "filetype", "image/png"); - else if (!_cups_strcasecmp(ext, ".ps") || - !_cups_strcasecmp(ext, ".ps.gz")) - ippFileSetVar(parent, "filetype", "application/postscript"); - else if (!_cups_strcasecmp(ext, ".pwg") || - !_cups_strcasecmp(ext, ".pwg.gz") || - !_cups_strcasecmp(ext, ".ras") || - !_cups_strcasecmp(ext, ".ras.gz")) - ippFileSetVar(parent, "filetype", "image/pwg-raster"); - else if (!_cups_strcasecmp(ext, ".tif") || - !_cups_strcasecmp(ext, ".tiff")) - ippFileSetVar(parent, "filetype", "image/tiff"); - else if (!_cups_strcasecmp(ext, ".txt") || - !_cups_strcasecmp(ext, ".txt.gz")) - ippFileSetVar(parent, "filetype", "text/plain"); - else if (!_cups_strcasecmp(ext, ".urf") || - !_cups_strcasecmp(ext, ".urf.gz")) - ippFileSetVar(parent, "filetype", "image/urf"); + ippFileSetVar(data->parent, "filetype", "image/png"); + else if (!_cups_strcasecmp(ext, ".ps") || !_cups_strcasecmp(ext, ".ps.gz")) + ippFileSetVar(data->parent, "filetype", "application/postscript"); + else if (!_cups_strcasecmp(ext, ".pwg") || !_cups_strcasecmp(ext, ".pwg.gz") || !_cups_strcasecmp(ext, ".ras") || !_cups_strcasecmp(ext, ".ras.gz")) + ippFileSetVar(data->parent, "filetype", "image/pwg-raster"); + else if (!_cups_strcasecmp(ext, ".pxl") || !_cups_strcasecmp(ext, ".pxl.gz")) + ippFileSetVar(data->parent, "filetype", "application/vnd.hp-PCLXL"); + else if (!_cups_strcasecmp(ext, ".tif") || !_cups_strcasecmp(ext, ".tiff")) + ippFileSetVar(data->parent, "filetype", "image/tiff"); + else if (!_cups_strcasecmp(ext, ".txt") || !_cups_strcasecmp(ext, ".txt.gz")) + ippFileSetVar(data->parent, "filetype", "text/plain"); + else if (!_cups_strcasecmp(ext, ".urf") || !_cups_strcasecmp(ext, ".urf.gz")) + ippFileSetVar(data->parent, "filetype", "image/urf"); else if (!_cups_strcasecmp(ext, ".xps")) - ippFileSetVar(parent, "filetype", "application/openxps"); + ippFileSetVar(data->parent, "filetype", "application/openxps"); else - ippFileSetVar(parent, "filetype", "application/octet-stream"); + ippFileSetVar(data->parent, "filetype", "application/octet-stream"); } else { - /* - * Use the "auto-type" MIME media type... - */ - - ippFileSetVar(parent, "filetype", "application/octet-stream"); + // Use the "auto-type" MIME media type... + ippFileSetVar(data->parent, "filetype", "application/octet-stream"); } break; @@ -664,43 +635,31 @@ main(int argc, /* I - Number of command-line args */ } } } - else if (!strncmp(argv[i], "ipp://", 6) || !strncmp(argv[i], "http://", 7) -#ifdef HAVE_TLS - || !strncmp(argv[i], "ipps://", 7) || !strncmp(argv[i], "https://", 8) -#endif /* HAVE_TLS */ - ) + else if (!strncmp(argv[i], "ipp://", 6) || !strncmp(argv[i], "http://", 7) || !strncmp(argv[i], "ipps://", 7) || !strncmp(argv[i], "https://", 8)) { - /* - * Set URI... - */ - - if (data->vars->uri) + // Set URI... + if (ippFileGetVar(data->parent, "uri")) { _cupsLangPuts(stderr, _("ipptool: May only specify a single URI.")); usage(); } -#ifdef HAVE_TLS if (!strncmp(argv[i], "ipps://", 7) || !strncmp(argv[i], "https://", 8)) data->encryption = HTTP_ENCRYPTION_ALWAYS; -#endif /* HAVE_TLS */ - if (!ippFileSetVar(parent, "uri", argv[i])) + if (!ippFileSetVar(data->parent, "uri", argv[i])) { _cupsLangPrintf(stderr, _("ipptool: Bad URI \"%s\"."), argv[i]); return (1); } - if (data->vars->username[0] && data->vars->password) - cupsSetPasswordCB(_ippVarsPasswordCB, data->vars); + if (ippFileGetVar(data->parent, "uriuser") && ippFileGetVar(data->parent, "uripassword")) + cupsSetPasswordCB(password_cb, data->parent); } else { - /* - * Run test... - */ - - if (!data->vars->uri) + // Run test... + if (!ippFileGetVar(data->parent, "uri")) { _cupsLangPuts(stderr, _("ipptool: URI required before test file.")); _cupsLangPuts(stderr, argv[i]); @@ -732,15 +691,14 @@ main(int argc, /* I - Number of command-line args */ } } - if (!data->vars->uri || !testfile) + if (!ippFileGetVar(data->parent, "uri") || !testfile) usage(); - /* - * Loop if the interval is set... - */ - + // Loop if the interval is set... if (data->output == IPPTOOL_OUTPUT_PLIST) + { print_xml_trailer(data, !status, NULL); + } else if (interval > 0 && repeat > 0) { while (repeat > 1) @@ -761,19 +719,14 @@ main(int argc, /* I - Number of command-line args */ if ((data->output == IPPTOOL_OUTPUT_TEST || (data->output == IPPTOOL_OUTPUT_PLIST && data->outfile)) && data->test_count > 1) { - /* - * Show a summary report if there were multiple tests... - */ - + // Show a summary report if there were multiple tests... cupsFilePrintf(cupsFileStdout(), "\nSummary: %d tests, %d passed, %d failed, %d skipped\nScore: %d%%\n", data->test_count, data->pass_count, data->fail_count, data->skip_count, 100 * (data->pass_count + data->skip_count) / data->test_count); } cupsFileClose(data->outfile); + free_data(data); - /* - * Exit... - */ - + // Exit... return (status); } @@ -814,6 +767,40 @@ add_stringf(cups_array_t *a, /* I - Array */ } +/* + * 'alloc_data()' - Initialize and allocate test data. + */ + +static ipptool_test_t * // O - Test data +alloc_data(void) +{ + ipptool_test_t *data; // Test data + + + if ((data = calloc(1, sizeof(ipptool_test_t))) == NULL) + { + _cupsLangPrintf(stderr, _("ipptool: Unable to allocate memory: %s"), strerror(errno)); + exit(1); + } + + data->parent = ippFileNew(/*parent*/NULL, /*attr_cb*/NULL, (ipp_ferror_cb_t)error_cb, data); + data->output = IPPTOOL_OUTPUT_LIST; + data->outfile = cupsFileStdout(); + data->family = AF_UNSPEC; + data->def_transfer = IPPTOOL_TRANSFER_AUTO; + data->def_version = 20; + data->errors = cupsArrayNew(NULL, NULL, NULL, 0, (cups_acopy_cb_t)strdup, (cups_afree_cb_t)free); + data->pass = true; + data->prev_pass = true; + data->request_id = (CUPS_RAND() % 1000) * 137; + data->show_header = true; + + ippFileSetVar(data->parent, "date-start", iso_date(ippTimeToDate(time(NULL)))); + + return (data); +} + + /* * 'compare_uris()' - Compare two URIs... */ @@ -879,6 +866,41 @@ compare_uris(const char *a, /* I - First URI */ } +// +// 'connect_printer()' - Connect to the printer. +// + +static http_t * // O - HTTP connection or `NULL` on error +connect_printer(ipptool_test_t *data) // I - Test data +{ + const char *scheme = ippFileGetVar(data->parent, "scheme"), + *hostname = ippFileGetVar(data->parent, "hostname"), + *port = ippFileGetVar(data->parent, "port"); + // URI fields + http_encryption_t encryption; // Encryption mode + http_t *http; // HTTP connection + + + if (!_cups_strcasecmp(scheme, "https") || !_cups_strcasecmp(scheme, "ipps") || atoi(port) == 443) + encryption = HTTP_ENCRYPTION_ALWAYS; + else + encryption = data->encryption; + + if ((http = httpConnect(hostname, atoi(port), NULL, data->family, encryption, 1, 30000, NULL)) == NULL) + { + print_fatal_error(data, "Unable to connect to '%s' on port %s: %s", hostname, port, cupsLastErrorString()); + return (NULL); + } + + httpSetDefaultField(data->http, HTTP_FIELD_ACCEPT_ENCODING, "deflate, gzip, identity"); + + if (data->timeout > 0.0) + httpSetTimeout(http, data->timeout, timeout_cb, NULL); + + return (http); +} + + /* * 'copy_hex_string()' - Copy an octetString to a C string and encode as hex if * needed. @@ -1059,10 +1081,10 @@ do_monitor_printer_state( for (i = data->num_monitor_expects, expect = data->monitor_expects; i > 0; i --, expect ++) { - if (expect->if_defined && !_ippVarsGet(data->vars, expect->if_defined)) + if (expect->if_defined && !ippFileGetVar(data->parent, expect->if_defined)) continue; - if (expect->if_not_defined && _ippVarsGet(data->vars, expect->if_not_defined)) + if (expect->if_not_defined && ippFileGetVar(data->parent, expect->if_not_defined)) continue; found = ippFindAttribute(response, expect->name, IPP_TAG_ZERO); @@ -1075,7 +1097,7 @@ do_monitor_printer_state( { if (expect->define_no_match) { - ippFileSetVar(parent, expect->define_no_match, "1"); + ippFileSetVar(data->parent, expect->define_no_match, "1"); data->monitor_done = 1; } break; @@ -1088,7 +1110,7 @@ do_monitor_printer_state( { if (expect->define_no_match) { - ippFileSetVar(parent, expect->define_no_match, "1"); + ippFileSetVar(data->parent, expect->define_no_match, "1"); data->monitor_done = 1; } break; @@ -1098,7 +1120,7 @@ do_monitor_printer_state( { if (expect->define_no_match) { - ippFileSetVar(parent, expect->define_no_match, "1"); + ippFileSetVar(data->parent, expect->define_no_match, "1"); data->monitor_done = 1; } break; @@ -1109,7 +1131,7 @@ do_monitor_printer_state( if (found && expect->define_match) { - ippFileSetVar(parent, expect->define_match, "1"); + ippFileSetVar(data->parent, expect->define_match, "1"); data->monitor_done = 1; } @@ -1153,7 +1175,7 @@ do_monitor_printer_state( } } - ippFileSetVar(parent, expect->define_value, buffer); + ippFileSetVar(data->parent, expect->define_value, buffer); data->monitor_done = 1; } } @@ -1184,8 +1206,8 @@ do_monitor_printer_state( * 'do_test()' - Do a single test from the test file. */ -static int /* O - 1 on success, 0 on failure */ -do_test(_ipp_file_t *f, /* I - IPP data file */ +static bool /* O - `true` on success, `false` on failure */ +do_test(ipp_file_t *f, /* I - IPP data file */ ipptool_test_t *data) /* I - Test data */ { @@ -1210,7 +1232,7 @@ do_test(_ipp_file_t *f, /* I - IPP data file */ if (Cancel) - return (0); + return (false); if (getenv("IPPTOOL_DEBUG")) fprintf(stderr, "ipptool: Doing test '%s', num_expects=%u, num_statuses=%u.\n", data->name, (unsigned)data->num_expects, (unsigned)data->num_statuses); @@ -1233,7 +1255,7 @@ do_test(_ipp_file_t *f, /* I - IPP data file */ if (data->monitor_uri) { - data->monitor_done = 0; + data->monitor_done = false; data->monitor_thread = cupsThreadCreate((cups_thread_func_t)do_monitor_printer_state, data); } @@ -1241,8 +1263,7 @@ do_test(_ipp_file_t *f, /* I - IPP data file */ * Take over control of the attributes in the request... */ - request = f->attrs; - f->attrs = NULL; + request = ippFileGetAttributes(f); /* * Submit the IPP request... @@ -1337,7 +1358,7 @@ do_test(_ipp_file_t *f, /* I - IPP data file */ goto skip_error; } - data->vars->password_tries = 0; + data->password_tries = 0; do { @@ -1385,8 +1406,8 @@ do_test(_ipp_file_t *f, /* I - IPP data file */ * Send the request... */ - data->prev_pass = 1; - repeat_test = 0; + data->prev_pass = true; + repeat_test = false; response = NULL; if (status != HTTP_STATUS_ERROR) @@ -1445,11 +1466,11 @@ do_test(_ipp_file_t *f, /* I - IPP data file */ #endif /* _WIN32 */ { if (httpReconnect(data->http, 30000, NULL)) - data->prev_pass = 0; + data->prev_pass = false; } else if (status == HTTP_STATUS_ERROR || status == HTTP_STATUS_CUPS_AUTHORIZATION_CANCELED) { - data->prev_pass = 0; + data->prev_pass = false; break; } else if (status != HTTP_STATUS_OK) @@ -1472,19 +1493,19 @@ do_test(_ipp_file_t *f, /* I - IPP data file */ #endif /* _WIN32 */ { if (httpReconnect(data->http, 30000, NULL)) - data->prev_pass = 0; + data->prev_pass = false; } else if (status == HTTP_STATUS_ERROR) { if (!Cancel) httpReconnect(data->http, 30000, NULL); - data->prev_pass = 0; + data->prev_pass = false; } else if (status != HTTP_STATUS_OK) { httpFlush(data->http); - data->prev_pass = 0; + data->prev_pass = false; } /* @@ -1528,16 +1549,16 @@ do_test(_ipp_file_t *f, /* I - IPP data file */ if ((attrptr = ippFindAttribute(response, "job-id", IPP_TAG_INTEGER)) != NULL) { snprintf(temp, sizeof(temp), "%d", ippGetInteger(attrptr, 0)); - ippFileSetVar(parent, "job-id", temp); + ippFileSetVar(data->parent, "job-id", temp); } if ((attrptr = ippFindAttribute(response, "job-uri", IPP_TAG_URI)) != NULL) - ippFileSetVar(parent, "job-uri", ippGetString(attrptr, 0, NULL)); + ippFileSetVar(data->parent, "job-uri", ippGetString(attrptr, 0, NULL)); if ((attrptr = ippFindAttribute(response, "notify-subscription-id", IPP_TAG_INTEGER)) != NULL) { snprintf(temp, sizeof(temp), "%d", ippGetInteger(attrptr, 0)); - ippFileSetVar(parent, "notify-subscription-id", temp); + ippFileSetVar(data->parent, "notify-subscription-id", temp); } /* @@ -1687,10 +1708,10 @@ do_test(_ipp_file_t *f, /* I - IPP data file */ { for (i = 0, status_ok = false; i < data->num_statuses; i ++) { - if (data->statuses[i].if_defined && !_ippVarsGet(data->vars, data->statuses[i].if_defined)) + if (data->statuses[i].if_defined && !ippFileGetVar(f, data->statuses[i].if_defined)) continue; - if (data->statuses[i].if_not_defined && _ippVarsGet(data->vars, data->statuses[i].if_not_defined)) + if (data->statuses[i].if_not_defined && ippFileGetVar(f, data->statuses[i].if_not_defined)) continue; if (ippGetStatusCode(response) == data->statuses[i].status) @@ -1701,7 +1722,7 @@ do_test(_ipp_file_t *f, /* I - IPP data file */ repeat_test = true; if (data->statuses[i].define_match) - ippFileSetVar(parent, data->statuses[i].define_match, "1"); + ippFileSetVar(data->parent, data->statuses[i].define_match, "1"); } else { @@ -1710,7 +1731,7 @@ do_test(_ipp_file_t *f, /* I - IPP data file */ if (data->statuses[i].define_no_match) { - ippFileSetVar(parent, data->statuses[i].define_no_match, "1"); + ippFileSetVar(data->parent, data->statuses[i].define_no_match, "1"); status_ok = true; } } @@ -1721,10 +1742,10 @@ do_test(_ipp_file_t *f, /* I - IPP data file */ { for (i = 0; i < data->num_statuses; i ++) { - if (data->statuses[i].if_defined && !_ippVarsGet(data->vars, data->statuses[i].if_defined)) + if (data->statuses[i].if_defined && !ippFileGetVar(f, data->statuses[i].if_defined)) continue; - if (data->statuses[i].if_not_defined && _ippVarsGet(data->vars, data->statuses[i].if_not_defined)) + if (data->statuses[i].if_not_defined && ippFileGetVar(f, data->statuses[i].if_not_defined)) continue; if (!data->statuses[i].repeat_match || repeat_count >= data->statuses[i].repeat_limit) @@ -1739,11 +1760,10 @@ do_test(_ipp_file_t *f, /* I - IPP data file */ { ipp_attribute_t *group_found; /* Found parent attribute for group tests */ - if (expect->if_defined && !_ippVarsGet(data->vars, expect->if_defined)) + if (expect->if_defined && !ippFileGetVar(f, expect->if_defined)) continue; - if (expect->if_not_defined && - _ippVarsGet(data->vars, expect->if_not_defined)) + if (expect->if_not_defined && ippFileGetVar(f, expect->if_not_defined)) continue; if ((found = ippFindAttribute(response, expect->name, IPP_TAG_ZERO)) != NULL && expect->in_group && expect->in_group != ippGetGroupTag(found)) @@ -1776,7 +1796,7 @@ do_test(_ipp_file_t *f, /* I - IPP data file */ (expect->with_distinct && !with_distinct_values(NULL, found))) { if (expect->define_no_match) - ippFileSetVar(parent, expect->define_no_match, "1"); + ippFileSetVar(data->parent, expect->define_no_match, "1"); else if (!expect->define_match && !expect->define_value) { if (found && expect->not_expect && !expect->with_value && !expect->with_value_from) @@ -1811,7 +1831,7 @@ do_test(_ipp_file_t *f, /* I - IPP data file */ if (found && expect->with_value_from && !with_value_from(NULL, ippFindAttribute(response, expect->with_value_from, IPP_TAG_ZERO), found, data->buffer, sizeof(data->buffer))) { if (expect->define_no_match) - ippFileSetVar(parent, expect->define_no_match, "1"); + ippFileSetVar(data->parent, expect->define_no_match, "1"); else if (!expect->define_match && !expect->define_value && ((!expect->repeat_match && !expect->repeat_no_match) || repeat_count >= expect->repeat_limit)) { add_stringf(data->errors, "EXPECTED: %s WITH-VALUES-FROM %s", expect->name, expect->with_value_from); @@ -1827,7 +1847,7 @@ do_test(_ipp_file_t *f, /* I - IPP data file */ else if (found && !with_value(data, NULL, expect->with_value, expect->with_flags, found, data->buffer, sizeof(data->buffer))) { if (expect->define_no_match) - ippFileSetVar(parent, expect->define_no_match, "1"); + ippFileSetVar(data->parent, expect->define_no_match, "1"); else if (!expect->define_match && !expect->define_value && !expect->repeat_match && (!expect->repeat_no_match || repeat_count >= expect->repeat_limit)) { @@ -1848,7 +1868,7 @@ do_test(_ipp_file_t *f, /* I - IPP data file */ if (found && expect->count > 0 && ippGetCount(found) != expect->count) { if (expect->define_no_match) - ippFileSetVar(parent, expect->define_no_match, "1"); + ippFileSetVar(data->parent, expect->define_no_match, "1"); else if (!expect->define_match && !expect->define_value) { add_stringf(data->errors, "EXPECTED: %s COUNT %u (got %u)", expect->name, (unsigned)expect->count, (unsigned)ippGetCount(found)); @@ -1868,7 +1888,7 @@ do_test(_ipp_file_t *f, /* I - IPP data file */ if (!attrptr || ippGetCount(attrptr) != ippGetCount(found)) { if (expect->define_no_match) - ippFileSetVar(parent, expect->define_no_match, "1"); + ippFileSetVar(data->parent, expect->define_no_match, "1"); else if (!expect->define_match && !expect->define_value) { if (!attrptr) @@ -1888,7 +1908,7 @@ do_test(_ipp_file_t *f, /* I - IPP data file */ cupsFilePrintf(cupsFileStdout(), "\n%s\n\n", expect->display_match); if (found && expect->define_match) - ippFileSetVar(parent, expect->define_match, "1"); + ippFileSetVar(data->parent, expect->define_match, "1"); if (found && expect->define_value) { @@ -1945,7 +1965,7 @@ do_test(_ipp_file_t *f, /* I - IPP data file */ } } - ippFileSetVar(parent, expect->define_value, data->buffer); + ippFileSetVar(data->parent, expect->define_value, data->buffer); } if (found && expect->repeat_match && repeat_count < expect->repeat_limit) @@ -2245,43 +2265,34 @@ do_test(_ipp_file_t *f, /* I - IPP data file */ * 'do_tests()' - Do tests as specified in the test file. */ -static int /* O - 1 on success, 0 on failure */ -do_tests(const char *testfile, /* I - Test file to use */ - ipptool_test_t *data) /* I - Test data */ +static bool // O - `true` on success, `false` on failure +do_tests(const char *testfile, // I - Test file to use + ipptool_test_t *data) // I - Test data { - http_encryption_t encryption; /* Encryption mode */ - + ipp_file_t *file; // IPP data file - /* - * Connect to the printer/server... - */ - if (!_cups_strcasecmp(data->vars->scheme, "https") || !_cups_strcasecmp(data->vars->scheme, "ipps") || data->vars->port == 443) - encryption = HTTP_ENCRYPTION_ALWAYS; - else - encryption = data->encryption; + // Connect to the printer/server... + data->http = connect_printer(data); - if ((data->http = httpConnect(data->vars->host, data->vars->port, NULL, data->family, encryption, 1, 30000, NULL)) == NULL) + // Run tests... + if ((file = ippFileNew(data->parent, NULL, (ipp_ferror_cb_t)error_cb, data)) == NULL) { - print_fatal_error(data, "Unable to connect to \"%s\" on port %d - %s", data->vars->host, data->vars->port, cupsLastErrorString()); - return (0); + print_fatal_error(data, "Unable to create test file parser: %s", cupsLastErrorString()); + return (false); } - httpSetDefaultField(data->http, HTTP_FIELD_ACCEPT_ENCODING, "deflate, gzip, identity"); - - if (data->timeout > 0.0) - httpSetTimeout(data->http, data->timeout, timeout_cb, NULL); - - /* - * Run tests... - */ + if (!ippFileOpen(file, testfile, "r")) + { + print_fatal_error(data, "Unable to open '%s': %s", testfile, cupsLastErrorString()); + return (false); + } - _ippFileParse(data->vars, testfile, (void *)data); + ippFileRead(file, (ipp_ftoken_cb_t)token_cb); - /* - * Close connection and return... - */ + ippFileDelete(file); + // Close connection and return... httpClose(data->http); data->http = NULL; @@ -2293,16 +2304,16 @@ do_tests(const char *testfile, /* I - Test file to use */ * 'error_cb()' - Print/add an error message. */ -static int /* O - 1 to continue, 0 to stop */ -error_cb(_ipp_file_t *f, /* I - IPP file data */ - ipptool_test_t *data, /* I - Test data */ - const char *error) /* I - Error message */ +static bool // O - `true` to continue, `false` to stop +error_cb(ipp_file_t *f, // I - IPP file data (not used) + ipptool_test_t *data, // I - Test data + const char *error) // I - Error message { (void)f; print_fatal_error(data, "%s", error); - return (1); + return (true); } @@ -2310,7 +2321,7 @@ error_cb(_ipp_file_t *f, /* I - IPP file data */ * 'expect_matches()' - Return true if the tag matches the specification. */ -static int /* O - 1 if matches, 0 otherwise */ +static bool // O - `true` on match, `false` on non-match expect_matches( ipptool_expect_t *expect, /* I - Expected attribute */ ipp_attribute_t *attr) /* I - Attribute */ @@ -2326,36 +2337,24 @@ expect_matches( int lower, upper; /* Lower and upper bounds for syntax */ - /* - * If we don't expect a particular type, return immediately... - */ - + // If we don't expect a particular type, return immediately... if (!expect->of_type) - return (1); - - /* - * Parse the "of_type" value since the string can contain multiple attribute - * types separated by "," or "|"... - */ + return (true); + // Parse the "of_type" value since the string can contain multiple attribute + // types separated by "," or "|"... value_tag = ippGetValueTag(attr); count = ippGetCount(attr); for (of_type = expect->of_type, match = false; !match && *of_type; of_type = next) { - /* - * Find the next separator, and set it (temporarily) to nul if present. - */ - + // Find the next separator, and set it (temporarily) to nul if present. for (next = of_type; *next && *next != '|' && *next != ','; next ++); if ((sep = *next) != '\0') *next = '\0'; - /* - * Support some meta-types to make it easier to write the test file. - */ - + // Support some meta-types to make it easier to write the test file. if ((paren = strchr(of_type, '(')) != NULL) { char *ptr; // Pointer into syntax string @@ -2497,10 +2496,7 @@ expect_matches( } } - /* - * Restore the separators if we have them... - */ - + // Restore the separators if we have them... if (paren) *paren = '('; @@ -2512,11 +2508,24 @@ expect_matches( } +// +// 'free_data()' - Free test data. +// + +static void +free_data(ipptool_test_t *data) // I - Test data +{ + ippFileDelete(data->parent); + free(data->buffer); + free(data); +} + + // // 'generate_file()' - Generate a print file. // -static http_status_t +static http_status_t // O - HTTP status generate_file( http_t *http, // I - HTTP connection ipptool_generate_t *params) // I - GENERATE-FILE parameters @@ -2720,28 +2729,6 @@ get_string(ipp_attribute_t *attr, /* I - IPP attribute */ } -/* - * 'init_data()' - Initialize test data. - */ - -static void -init_data(ipptool_test_t *data) /* I - Data */ -{ - memset(data, 0, sizeof(ipptool_test_t)); - - data->output = IPPTOOL_OUTPUT_LIST; - data->outfile = cupsFileStdout(); - data->family = AF_UNSPEC; - data->def_transfer = IPPTOOL_TRANSFER_AUTO; - data->def_version = 11; - data->errors = cupsArrayNew(NULL, NULL, NULL, 0, (cups_acopy_cb_t)strdup, (cups_afree_cb_t)free); - data->pass = true; - data->prev_pass = true; - data->request_id = (CUPS_RAND() % 1000) * 137; - data->show_header = 1; -} - - /* * 'iso_date()' - Return an ISO 8601 date/time string for the given IPP dateTime * value. @@ -2781,9 +2768,9 @@ iso_date(const ipp_uchar_t *date) /* I - IPP (RFC 1903) date/time value */ * } */ -static int // O - 1 to continue, 0 to stop +static bool // O - `true` to continue, `false` to stop parse_generate_file( - _ipp_file_t *f, // I - IPP file data + ipp_file_t *f, // I - IPP file data ipptool_test_t *data) // I - Test data { size_t i; // Looping var @@ -2840,44 +2827,42 @@ parse_generate_file( // Make sure we have an open brace after the GENERATE-FILE... - if (!_ippFileReadToken(f, token, sizeof(token)) || strcmp(token, "{")) + if (!ippFileReadToken(f, token, sizeof(token)) || strcmp(token, "{")) { - print_fatal_error(data, "Missing open brace on line %d of \"%s\".", f->linenum, f->filename); + print_fatal_error(data, "Missing open brace on line %d of '%s'.", ippFileGetLineNumber(f), ippFileGetFilename(f)); return (0); } // Get printer attributes... - if ((http = httpConnect(data->vars->host, data->vars->port, NULL, data->family, data->encryption, 1, 30000, NULL)) == NULL) + if ((http = connect_printer(data)) == NULL) { - print_fatal_error(data, "Unable to connect to printer for GENERATE-FILE on line %d of \"%s\".", f->linenum, f->filename); - print_fatal_error(data, "Error: %s", cupsLastErrorString()); - return (0); + print_fatal_error(data, "GENERATE-FILE connection failure on line %d of '%s'.", ippFileGetLineNumber(f), ippFileGetFilename(f)); + return (false); } request = ippNewRequest(IPP_OP_GET_PRINTER_ATTRIBUTES); - ippAddString(request, IPP_TAG_OPERATION, IPP_TAG_URI, "printer-uri", NULL, data->vars->uri); + ippAddString(request, IPP_TAG_OPERATION, IPP_TAG_URI, "printer-uri", NULL, ippFileGetVar(data->parent, "uri")); - response = cupsDoRequest(http, request, data->vars->resource); + response = cupsDoRequest(http, request, ippFileGetVar(data->parent, "resource")); httpClose(http); if (cupsLastError() >= IPP_STATUS_ERROR_BAD_REQUEST) { - print_fatal_error(data, "Unable to get printer attributes for GENERATE-FILE on line %d of \"%s\".", f->linenum, f->filename); - print_fatal_error(data, "Error: %s", cupsLastErrorString()); + print_fatal_error(data, "GENERATE-FILE query failure on line %d of '%s': %s", ippFileGetLineNumber(f), ippFileGetFilename(f), cupsLastErrorString()); ippDelete(response); - return (0); + return (false); } // Allocate parameters... if ((params = calloc(1, sizeof(ipptool_generate_t))) == NULL) { - print_fatal_error(data, "Unable to allocate memory for GENERATE-FILE on line %d of \"%s\".", f->linenum, f->filename); - return (0); + print_fatal_error(data, "GENERATE-FILE memory allocation failure on line %d of '%s'.", ippFileGetLineNumber(f), ippFileGetFilename(f)); + return (false); } // Loop until we get a closing brace... - while (_ippFileReadToken(f, token, sizeof(token))) + while (ippFileReadToken(f, token, sizeof(token))) { if (!strcmp(token, "}")) { @@ -2885,7 +2870,7 @@ parse_generate_file( if (!params->type[0]) { // Get request/printer default value for print-color-mode, default to "auto"... - if ((attr = ippFindAttribute(f->attrs, "print-color-mode", IPP_TAG_KEYWORD)) == NULL) + if ((attr = ippFileGetAttribute(f, "print-color-mode", IPP_TAG_KEYWORD)) == NULL) attr = ippFindAttribute(response, "print-color-mode-default", IPP_TAG_KEYWORD); if (attr) @@ -2913,7 +2898,7 @@ parse_generate_file( if (!params->type[0]) { - print_fatal_error(data, "Printer does not support COLORSPACE \"auto\" on line %d of \"%s\".", f->linenum, f->filename); + print_fatal_error(data, "Printer does not support COLORSPACE \"auto\" on line %d of '%s'.", ippFileGetLineNumber(f), ippFileGetFilename(f)); goto fail; } } @@ -2935,7 +2920,7 @@ parse_generate_file( if (!params->type[0]) { - print_fatal_error(data, "Printer does not support COLORSPACE \"bi-level\" on line %d of \"%s\".", f->linenum, f->filename); + print_fatal_error(data, "Printer does not support COLORSPACE \"bi-level\" on line %d of '%s'.", ippFileGetLineNumber(f), ippFileGetFilename(f)); goto fail; } } @@ -2958,7 +2943,7 @@ parse_generate_file( if (!params->type[0]) { - print_fatal_error(data, "Printer does not support COLORSPACE \"color\" on line %d of \"%s\".", f->linenum, f->filename); + print_fatal_error(data, "Printer does not support COLORSPACE \"color\" on line %d of '%s'.", ippFileGetLineNumber(f), ippFileGetFilename(f)); goto fail; } } @@ -2981,7 +2966,7 @@ parse_generate_file( if (!params->type[0]) { - print_fatal_error(data, "Printer does not support COLORSPACE \"monochrome\" on line %d of \"%s\".", f->linenum, f->filename); + print_fatal_error(data, "Printer does not support COLORSPACE \"monochrome\" on line %d of '%s'.", ippFileGetLineNumber(f), ippFileGetFilename(f)); goto fail; } } @@ -2990,11 +2975,11 @@ parse_generate_file( if (!params->format[0]) { // Check the supported formats and choose a suitable one... - if ((keyword = ippGetString(ippFindAttribute(f->attrs, "document-format", IPP_TAG_MIMETYPE), 0, NULL)) != NULL) + if ((keyword = ippGetString(ippFileGetAttribute(f, "document-format", IPP_TAG_MIMETYPE), 0, NULL)) != NULL) { if (strcmp(keyword, "image/pwg-raster") && strcmp(keyword, "image/urf")) { - print_fatal_error(data, "Unsupported \"document-format\" value on line %d of \"%s\".", f->linenum, f->filename); + print_fatal_error(data, "Unsupported \"document-format\" value on line %d of '%s'.", ippFileGetLineNumber(f), ippFileGetFilename(f)); goto fail; } @@ -3012,7 +2997,7 @@ parse_generate_file( if (!params->format[0]) { - print_fatal_error(data, "Printer does not support a compatible FORMAT on line %d of \"%s\".", f->linenum, f->filename); + print_fatal_error(data, "Printer does not support a compatible FORMAT on line %d of '%s'.", ippFileGetLineNumber(f), ippFileGetFilename(f)); goto fail; } } @@ -3021,7 +3006,7 @@ parse_generate_file( if (!params->media[0] || !strcmp(params->media, "default")) { // Use job ticket or default media... - if (!params->media[0] && (keyword = ippGetString(ippFindAttribute(f->attrs, "media", IPP_TAG_ZERO), 0, NULL)) != NULL) + if (!params->media[0] && (keyword = ippGetString(ippFileGetAttribute(f, "media", IPP_TAG_ZERO), 0, NULL)) != NULL) { cupsCopyString(params->media, keyword, sizeof(params->media)); } @@ -3031,7 +3016,7 @@ parse_generate_file( } else { - print_fatal_error(data, "Printer does not report a default MEDIA size name on line %d of \"%s\".", f->linenum, f->filename); + print_fatal_error(data, "Printer does not report a default MEDIA size name on line %d of '%s'.", ippFileGetLineNumber(f), ippFileGetFilename(f)); goto fail; } } @@ -3044,7 +3029,7 @@ parse_generate_file( } else { - print_fatal_error(data, "Printer does not report a ready MEDIA size name on line %d of \"%s\".", f->linenum, f->filename); + print_fatal_error(data, "Printer does not report a ready MEDIA size name on line %d of '%s'.", ippFileGetLineNumber(f), ippFileGetFilename(f)); goto fail; } } @@ -3083,7 +3068,7 @@ parse_generate_file( if (!params->xdpi || !params->ydpi) { - print_fatal_error(data, "Printer does not report a supported RESOLUTION on line %d of \"%s\".", f->linenum, f->filename); + print_fatal_error(data, "Printer does not report a supported RESOLUTION on line %d of '%s'.", ippFileGetLineNumber(f), ippFileGetFilename(f)); goto fail; } } @@ -3091,7 +3076,7 @@ parse_generate_file( // Default duplex/sides if (!params->sides[0]) { - if ((keyword = ippGetString(ippFindAttribute(f->attrs, "sides", IPP_TAG_ZERO), 0, NULL)) != NULL) + if ((keyword = ippGetString(ippFileGetAttribute(f, "sides", IPP_TAG_ZERO), 0, NULL)) != NULL) { // Use the setting from the job ticket... cupsCopyString(params->sides, keyword, sizeof(params->sides)); @@ -3115,7 +3100,7 @@ parse_generate_file( if (!params->orientation) { // Use the job ticket value, otherwise use landscape for short-edge duplex - if ((attr = ippFindAttribute(f->attrs, "orientation-requested", IPP_TAG_ENUM)) != NULL) + if ((attr = ippFileGetAttribute(f, "orientation-requested", IPP_TAG_ENUM)) != NULL) params->orientation = (ipp_orient_t)ippGetInteger(attr, 0); else params->orientation = !strcmp(params->sides, "two-sided-short-edge") ? IPP_ORIENT_LANDSCAPE : IPP_ORIENT_PORTRAIT; @@ -3162,17 +3147,17 @@ parse_generate_file( { if (params->type[0]) { - print_fatal_error(data, "Unexpected extra COLORSPACE on line %d of \"%s\".", f->linenum, f->filename); + print_fatal_error(data, "Unexpected extra COLORSPACE on line %d of '%s'.", ippFileGetLineNumber(f), ippFileGetFilename(f)); goto fail; } - if (!_ippFileReadToken(f, temp, sizeof(temp))) + if (!ippFileReadToken(f, temp, sizeof(temp))) { - print_fatal_error(data, "Missing COLORSPACE value on line %d of \"%s\".", f->linenum, f->filename); + print_fatal_error(data, "Missing COLORSPACE value on line %d of '%s'.", ippFileGetLineNumber(f), ippFileGetFilename(f)); goto fail; } - _ippVarsExpand(data->vars, value, temp, sizeof(value)); + ippFileExpandVars(f, value, temp, sizeof(value)); if (!strcmp(value, "auto") || !strcmp(value, "bi-level") || !strcmp(value, "color") || !strcmp(value, "monochrome") || !strcmp(value, "adobe-rgb_8") || !strcmp(value, "adobe-rgb_16") || !strcmp(value, "black_1") || !strcmp(value, "black_8") || !strcmp(value, "black_16") || !strcmp(value, "cmyk_8") || !strcmp(value, "cmyk_16") || !strcmp(value, "rgb_8") || !strcmp(value, "rgb_16") || !strcmp(value, "sgray_1") || !strcmp(value, "sgray_8") || !strcmp(value, "sgray_16") || !strcmp(value, "srgb_8") || !strcmp(value, "srgb_16")) { @@ -3181,7 +3166,7 @@ parse_generate_file( } else { - print_fatal_error(data, "Bad COLORSPACE \"%s\" on line %d of \"%s\".", value, f->linenum, f->filename); + print_fatal_error(data, "Bad COLORSPACE \"%s\" on line %d of '%s'.", value, ippFileGetLineNumber(f), ippFileGetFilename(f)); goto fail; } } @@ -3189,17 +3174,17 @@ parse_generate_file( { if (params->format[0]) { - print_fatal_error(data, "Unexpected extra FORMAT on line %d of \"%s\".", f->linenum, f->filename); + print_fatal_error(data, "Unexpected extra FORMAT on line %d of '%s'.", ippFileGetLineNumber(f), ippFileGetFilename(f)); goto fail; } - if (!_ippFileReadToken(f, temp, sizeof(temp))) + if (!ippFileReadToken(f, temp, sizeof(temp))) { - print_fatal_error(data, "Missing FORMAT MIME media type on line %d of \"%s\".", f->linenum, f->filename); + print_fatal_error(data, "Missing FORMAT MIME media type on line %d of '%s'.", ippFileGetLineNumber(f), ippFileGetFilename(f)); goto fail; } - _ippVarsExpand(data->vars, value, temp, sizeof(value)); + ippFileExpandVars(f, value, temp, sizeof(value)); if (!strcmp(value, "image/pwg-raster") || !strcmp(value, "image/urf")) { @@ -3207,7 +3192,7 @@ parse_generate_file( } else { - print_fatal_error(data, "Bad FORMAT \"%s\" on line %d of \"%s\".", value, f->linenum, f->filename); + print_fatal_error(data, "Bad FORMAT \"%s\" on line %d of '%s'.", value, ippFileGetLineNumber(f), ippFileGetFilename(f)); goto fail; } } @@ -3215,17 +3200,17 @@ parse_generate_file( { if (params->media[0]) { - print_fatal_error(data, "Unexpected extra MEDIA on line %d of \"%s\".", f->linenum, f->filename); + print_fatal_error(data, "Unexpected extra MEDIA on line %d of '%s'.", ippFileGetLineNumber(f), ippFileGetFilename(f)); goto fail; } - if (!_ippFileReadToken(f, temp, sizeof(temp))) + if (!ippFileReadToken(f, temp, sizeof(temp))) { - print_fatal_error(data, "Missing MEDIA size name on line %d of \"%s\".", f->linenum, f->filename); + print_fatal_error(data, "Missing MEDIA size name on line %d of '%s'.", ippFileGetLineNumber(f), ippFileGetFilename(f)); goto fail; } - _ippVarsExpand(data->vars, value, temp, sizeof(value)); + ippFileExpandVars(f, value, temp, sizeof(value)); if (!strcmp(value, "default") || !strcmp(value, "ready") || pwgMediaForPWG(value) != NULL) { @@ -3233,7 +3218,7 @@ parse_generate_file( } else { - print_fatal_error(data, "Bad MEDIA \"%s\" on line %d of \"%s\".", value, f->linenum, f->filename); + print_fatal_error(data, "Bad MEDIA \"%s\" on line %d of '%s'.", value, ippFileGetLineNumber(f), ippFileGetFilename(f)); goto fail; } } @@ -3243,21 +3228,21 @@ parse_generate_file( if (params->num_copies) { - print_fatal_error(data, "Unexpected extra NUM-COPIES on line %d of \"%s\".", f->linenum, f->filename); + print_fatal_error(data, "Unexpected extra NUM-COPIES on line %d of '%s'.", ippFileGetLineNumber(f), ippFileGetFilename(f)); goto fail; } - if (!_ippFileReadToken(f, temp, sizeof(temp))) + if (!ippFileReadToken(f, temp, sizeof(temp))) { - print_fatal_error(data, "Missing NUM-COPIES number on line %d of \"%s\".", f->linenum, f->filename); + print_fatal_error(data, "Missing NUM-COPIES number on line %d of '%s'.", ippFileGetLineNumber(f), ippFileGetFilename(f)); goto fail; } - _ippVarsExpand(data->vars, value, temp, sizeof(value)); + ippFileExpandVars(f, value, temp, sizeof(value)); if ((intvalue = strtoul(value, NULL, 10)) == ULONG_MAX || intvalue < 1) { - print_fatal_error(data, "Bad NUM-COPIES \"%s\" on line %d of \"%s\".", value, f->linenum, f->filename); + print_fatal_error(data, "Bad NUM-COPIES \"%s\" on line %d of '%s'.", value, ippFileGetLineNumber(f), ippFileGetFilename(f)); goto fail; } @@ -3269,21 +3254,21 @@ parse_generate_file( if (params->num_pages) { - print_fatal_error(data, "Unexpected extra NUM-PAGES on line %d of \"%s\".", f->linenum, f->filename); + print_fatal_error(data, "Unexpected extra NUM-PAGES on line %d of '%s'.", ippFileGetLineNumber(f), ippFileGetFilename(f)); goto fail; } - if (!_ippFileReadToken(f, temp, sizeof(temp))) + if (!ippFileReadToken(f, temp, sizeof(temp))) { - print_fatal_error(data, "Missing NUM-PAGES number on line %d of \"%s\".", f->linenum, f->filename); + print_fatal_error(data, "Missing NUM-PAGES number on line %d of '%s'.", ippFileGetLineNumber(f), ippFileGetFilename(f)); goto fail; } - _ippVarsExpand(data->vars, value, temp, sizeof(value)); + ippFileExpandVars(f, value, temp, sizeof(value)); if ((intvalue = strtoul(value, NULL, 10)) == ULONG_MAX || intvalue < 1) { - print_fatal_error(data, "Bad NUM-PAGES \"%s\" on line %d of \"%s\".", value, f->linenum, f->filename); + print_fatal_error(data, "Bad NUM-PAGES \"%s\" on line %d of '%s'.", value, ippFileGetLineNumber(f), ippFileGetFilename(f)); goto fail; } @@ -3293,17 +3278,17 @@ parse_generate_file( { if (params->orientation) { - print_fatal_error(data, "Unexpected extra ORIENTATION on line %d of \"%s\".", f->linenum, f->filename); + print_fatal_error(data, "Unexpected extra ORIENTATION on line %d of '%s'.", ippFileGetLineNumber(f), ippFileGetFilename(f)); goto fail; } - if (!_ippFileReadToken(f, temp, sizeof(temp))) + if (!ippFileReadToken(f, temp, sizeof(temp))) { - print_fatal_error(data, "Missing ORIENTATION on line %d of \"%s\".", f->linenum, f->filename); + print_fatal_error(data, "Missing ORIENTATION on line %d of '%s'.", ippFileGetLineNumber(f), ippFileGetFilename(f)); goto fail; } - _ippVarsExpand(data->vars, value, temp, sizeof(value)); + ippFileExpandVars(f, value, temp, sizeof(value)); if (!strcmp(value, "portrait")) params->orientation = IPP_ORIENT_PORTRAIT; @@ -3315,7 +3300,7 @@ parse_generate_file( params->orientation = IPP_ORIENT_REVERSE_PORTRAIT; else { - print_fatal_error(data, "Bad ORIENTATION \"%s\" on line %d of \"%s\".", value, f->linenum, f->filename); + print_fatal_error(data, "Bad ORIENTATION \"%s\" on line %d of '%s'.", value, ippFileGetLineNumber(f), ippFileGetFilename(f)); goto fail; } } @@ -3323,17 +3308,17 @@ parse_generate_file( { if (params->xdpi || params->ydpi) { - print_fatal_error(data, "Unexpected extra RESOLUTION on line %d of \"%s\".", f->linenum, f->filename); + print_fatal_error(data, "Unexpected extra RESOLUTION on line %d of '%s'.", ippFileGetLineNumber(f), ippFileGetFilename(f)); goto fail; } - if (!_ippFileReadToken(f, temp, sizeof(temp))) + if (!ippFileReadToken(f, temp, sizeof(temp))) { - print_fatal_error(data, "Missing RESOLUTION on line %d of \"%s\".", f->linenum, f->filename); + print_fatal_error(data, "Missing RESOLUTION on line %d of '%s'.", ippFileGetLineNumber(f), ippFileGetFilename(f)); goto fail; } - _ippVarsExpand(data->vars, value, temp, sizeof(value)); + ippFileExpandVars(f, value, temp, sizeof(value)); if (!strcmp(value, "min") || !strcmp(value, "max")) { @@ -3397,19 +3382,19 @@ parse_generate_file( if (strcmp(value, "default") && (params->xdpi <= 0 || params->ydpi <= 0)) { - print_fatal_error(data, "Bad RESOLUTION \"%s\" on line %d of \"%s\".", value, f->linenum, f->filename); + print_fatal_error(data, "Bad RESOLUTION \"%s\" on line %d of '%s'.", value, ippFileGetLineNumber(f), ippFileGetFilename(f)); goto fail; } } else if (!_cups_strcasecmp(token, "SIDES")) { - if (!_ippFileReadToken(f, temp, sizeof(temp))) + if (!ippFileReadToken(f, temp, sizeof(temp))) { - print_fatal_error(data, "Missing SIDES on line %d of \"%s\".", f->linenum, f->filename); + print_fatal_error(data, "Missing SIDES on line %d of '%s'.", ippFileGetLineNumber(f), ippFileGetFilename(f)); goto fail; } - _ippVarsExpand(data->vars, value, temp, sizeof(value)); + ippFileExpandVars(f, value, temp, sizeof(value)); if (!strcmp(value, "one-sided") || !strcmp(value, "two-sided-long-edge") || !strcmp(value, "two-sided-short-edge")) { @@ -3417,18 +3402,18 @@ parse_generate_file( } else { - print_fatal_error(data, "Bad SIDES \"%s\" on line %d of \"%s\".", value, f->linenum, f->filename); + print_fatal_error(data, "Bad SIDES \"%s\" on line %d of '%s'.", value, ippFileGetLineNumber(f), ippFileGetFilename(f)); goto fail; } } else { - print_fatal_error(data, "Unknown %s on line %d of \"%s\".", token, f->linenum, f->filename); + print_fatal_error(data, "Unknown %s on line %d of '%s'.", token, ippFileGetLineNumber(f), ippFileGetFilename(f)); goto fail; } } - print_fatal_error(data, "Missing closing brace on line %d of \"%s\".", f->linenum, f->filename); + print_fatal_error(data, "Missing closing brace on line %d of '%s'.", ippFileGetLineNumber(f), ippFileGetFilename(f)); fail: @@ -3447,9 +3432,9 @@ parse_generate_file( * } */ -static int /* O - 1 to continue, 0 to stop */ +static bool /* O - `true` to continue, `false` to stop */ parse_monitor_printer_state( - _ipp_file_t *f, /* I - IPP file data */ + ipp_file_t *f, /* I - IPP file data */ ipptool_test_t *data) /* I - Test data */ { char token[256], /* Token string */ @@ -3459,33 +3444,33 @@ parse_monitor_printer_state( *ptr; /* Pointer into value */ - if (!_ippFileReadToken(f, temp, sizeof(temp))) + if (!ippFileReadToken(f, temp, sizeof(temp))) { - print_fatal_error(data, "Missing printer URI on line %d of \"%s\".", f->linenum, f->filename); + print_fatal_error(data, "Missing printer URI on line %d of '%s'.", ippFileGetLineNumber(f), ippFileGetFilename(f)); return (0); } if (strcmp(temp, "{")) { // Got a printer URI so copy it... - _ippVarsExpand(data->vars, value, temp, sizeof(value)); + ippFileExpandVars(f, value, temp, sizeof(value)); data->monitor_uri = strdup(value); // Then see if we have an opening brace... - if (!_ippFileReadToken(f, temp, sizeof(temp)) || strcmp(temp, "{")) + if (!ippFileReadToken(f, temp, sizeof(temp)) || strcmp(temp, "{")) { - print_fatal_error(data, "Missing opening brace on line %d of \"%s\".", f->linenum, f->filename); + print_fatal_error(data, "Missing opening brace on line %d of '%s'.", ippFileGetLineNumber(f), ippFileGetFilename(f)); return (0); } } else { // Use the default printer URI... - data->monitor_uri = strdup(data->vars->uri); + data->monitor_uri = strdup(ippFileGetVar(data->parent, "uri")); } // Loop until we get a closing brace... - while (_ippFileReadToken(f, token, sizeof(token))) + while (ippFileReadToken(f, token, sizeof(token))) { if (_cups_strcasecmp(token, "COUNT") && _cups_strcasecmp(token, "DEFINE-MATCH") && @@ -3510,13 +3495,13 @@ parse_monitor_printer_state( if (data->num_monitor_expects >= (int)(sizeof(data->monitor_expects) / sizeof(data->monitor_expects[0]))) { - print_fatal_error(data, "Too many EXPECT's on line %d of \"%s\".", f->linenum, f->filename); + print_fatal_error(data, "Too many EXPECT's on line %d of '%s'.", ippFileGetLineNumber(f), ippFileGetFilename(f)); return (0); } - if (!_ippFileReadToken(f, name, sizeof(name))) + if (!ippFileReadToken(f, name, sizeof(name))) { - print_fatal_error(data, "Missing EXPECT name on line %d of \"%s\".", f->linenum, f->filename); + print_fatal_error(data, "Missing EXPECT name on line %d of '%s'.", ippFileGetLineNumber(f), ippFileGetFilename(f)); return (0); } @@ -3543,15 +3528,15 @@ parse_monitor_printer_state( { size_t count; /* Count value */ - if (!_ippFileReadToken(f, temp, sizeof(temp))) + if (!ippFileReadToken(f, temp, sizeof(temp))) { - print_fatal_error(data, "Missing COUNT number on line %d of \"%s\".", f->linenum, f->filename); + print_fatal_error(data, "Missing COUNT number on line %d of '%s'.", ippFileGetLineNumber(f), ippFileGetFilename(f)); return (0); } if ((count = strtoul(temp, NULL, 10)) == ULONG_MAX) { - print_fatal_error(data, "Bad COUNT \"%s\" on line %d of \"%s\".", temp, f->linenum, f->filename); + print_fatal_error(data, "Bad COUNT \"%s\" on line %d of '%s'.", temp, ippFileGetLineNumber(f), ippFileGetFilename(f)); return (0); } @@ -3561,15 +3546,15 @@ parse_monitor_printer_state( } else { - print_fatal_error(data, "COUNT without a preceding EXPECT on line %d of \"%s\".", f->linenum, f->filename); + print_fatal_error(data, "COUNT without a preceding EXPECT on line %d of '%s'.", ippFileGetLineNumber(f), ippFileGetFilename(f)); return (0); } } else if (!_cups_strcasecmp(token, "DEFINE-MATCH")) { - if (!_ippFileReadToken(f, temp, sizeof(temp))) + if (!ippFileReadToken(f, temp, sizeof(temp))) { - print_fatal_error(data, "Missing DEFINE-MATCH variable on line %d of \"%s\".", f->linenum, f->filename); + print_fatal_error(data, "Missing DEFINE-MATCH variable on line %d of '%s'.", ippFileGetLineNumber(f), ippFileGetFilename(f)); return (0); } @@ -3579,15 +3564,15 @@ parse_monitor_printer_state( } else { - print_fatal_error(data, "DEFINE-MATCH without a preceding EXPECT on line %d of \"%s\".", f->linenum, f->filename); + print_fatal_error(data, "DEFINE-MATCH without a preceding EXPECT on line %d of '%s'.", ippFileGetLineNumber(f), ippFileGetFilename(f)); return (0); } } else if (!_cups_strcasecmp(token, "DEFINE-NO-MATCH")) { - if (!_ippFileReadToken(f, temp, sizeof(temp))) + if (!ippFileReadToken(f, temp, sizeof(temp))) { - print_fatal_error(data, "Missing DEFINE-NO-MATCH variable on line %d of \"%s\".", f->linenum, f->filename); + print_fatal_error(data, "Missing DEFINE-NO-MATCH variable on line %d of '%s'.", ippFileGetLineNumber(f), ippFileGetFilename(f)); return (0); } @@ -3597,15 +3582,15 @@ parse_monitor_printer_state( } else { - print_fatal_error(data, "DEFINE-NO-MATCH without a preceding EXPECT on line %d of \"%s\".", f->linenum, f->filename); + print_fatal_error(data, "DEFINE-NO-MATCH without a preceding EXPECT on line %d of '%s'.", ippFileGetLineNumber(f), ippFileGetFilename(f)); return (0); } } else if (!_cups_strcasecmp(token, "DEFINE-VALUE")) { - if (!_ippFileReadToken(f, temp, sizeof(temp))) + if (!ippFileReadToken(f, temp, sizeof(temp))) { - print_fatal_error(data, "Missing DEFINE-VALUE variable on line %d of \"%s\".", f->linenum, f->filename); + print_fatal_error(data, "Missing DEFINE-VALUE variable on line %d of '%s'.", ippFileGetLineNumber(f), ippFileGetFilename(f)); return (0); } @@ -3615,15 +3600,15 @@ parse_monitor_printer_state( } else { - print_fatal_error(data, "DEFINE-VALUE without a preceding EXPECT on line %d of \"%s\".", f->linenum, f->filename); + print_fatal_error(data, "DEFINE-VALUE without a preceding EXPECT on line %d of '%s'.", ippFileGetLineNumber(f), ippFileGetFilename(f)); return (0); } } else if (!_cups_strcasecmp(token, "DISPLAY-MATCH")) { - if (!_ippFileReadToken(f, temp, sizeof(temp))) + if (!ippFileReadToken(f, temp, sizeof(temp))) { - print_fatal_error(data, "Missing DISPLAY-MATCH message on line %d of \"%s\".", f->linenum, f->filename); + print_fatal_error(data, "Missing DISPLAY-MATCH message on line %d of '%s'.", ippFileGetLineNumber(f), ippFileGetFilename(f)); return (0); } @@ -3633,7 +3618,7 @@ parse_monitor_printer_state( } else { - print_fatal_error(data, "DISPLAY-MATCH without a preceding EXPECT on line %d of \"%s\".", f->linenum, f->filename); + print_fatal_error(data, "DISPLAY-MATCH without a preceding EXPECT on line %d of '%s'.", ippFileGetLineNumber(f), ippFileGetFilename(f)); return (0); } } @@ -3645,17 +3630,17 @@ parse_monitor_printer_state( double dval; /* Delay value */ - if (!_ippFileReadToken(f, temp, sizeof(temp))) + if (!ippFileReadToken(f, temp, sizeof(temp))) { - print_fatal_error(data, "Missing DELAY value on line %d of \"%s\".", f->linenum, f->filename); + print_fatal_error(data, "Missing DELAY value on line %d of '%s'.", ippFileGetLineNumber(f), ippFileGetFilename(f)); return (0); } - _ippVarsExpand(data->vars, value, temp, sizeof(value)); + ippFileExpandVars(f, value, temp, sizeof(value)); if ((dval = _cupsStrScand(value, &ptr, localeconv())) < 0.0 || (*ptr && *ptr != ',')) { - print_fatal_error(data, "Bad DELAY value \"%s\" on line %d of \"%s\".", value, f->linenum, f->filename); + print_fatal_error(data, "Bad DELAY value \"%s\" on line %d of '%s'.", value, ippFileGetLineNumber(f), ippFileGetFilename(f)); return (0); } @@ -3665,7 +3650,7 @@ parse_monitor_printer_state( { if ((dval = _cupsStrScand(ptr + 1, &ptr, localeconv())) <= 0.0 || *ptr) { - print_fatal_error(data, "Bad DELAY value \"%s\" on line %d of \"%s\".", value, f->linenum, f->filename); + print_fatal_error(data, "Bad DELAY value \"%s\" on line %d of '%s'.", value, ippFileGetLineNumber(f), ippFileGetFilename(f)); return (0); } @@ -3676,9 +3661,9 @@ parse_monitor_printer_state( } else if (!_cups_strcasecmp(token, "OF-TYPE")) { - if (!_ippFileReadToken(f, temp, sizeof(temp))) + if (!ippFileReadToken(f, temp, sizeof(temp))) { - print_fatal_error(data, "Missing OF-TYPE value tag(s) on line %d of \"%s\".", f->linenum, f->filename); + print_fatal_error(data, "Missing OF-TYPE value tag(s) on line %d of '%s'.", ippFileGetLineNumber(f), ippFileGetFilename(f)); return (0); } @@ -3688,7 +3673,7 @@ parse_monitor_printer_state( } else { - print_fatal_error(data, "OF-TYPE without a preceding EXPECT on line %d of \"%s\".", f->linenum, f->filename); + print_fatal_error(data, "OF-TYPE without a preceding EXPECT on line %d of '%s'.", ippFileGetLineNumber(f), ippFileGetFilename(f)); return (0); } } @@ -3696,15 +3681,15 @@ parse_monitor_printer_state( { ipp_tag_t in_group; /* IN-GROUP value */ - if (!_ippFileReadToken(f, temp, sizeof(temp))) + if (!ippFileReadToken(f, temp, sizeof(temp))) { - print_fatal_error(data, "Missing IN-GROUP group tag on line %d of \"%s\".", f->linenum, f->filename); + print_fatal_error(data, "Missing IN-GROUP group tag on line %d of '%s'.", ippFileGetLineNumber(f), ippFileGetFilename(f)); return (0); } if ((in_group = ippTagValue(temp)) == IPP_TAG_ZERO || in_group >= IPP_TAG_UNSUPPORTED_VALUE) { - print_fatal_error(data, "Bad IN-GROUP group tag \"%s\" on line %d of \"%s\".", temp, f->linenum, f->filename); + print_fatal_error(data, "Bad IN-GROUP group tag \"%s\" on line %d of '%s'.", temp, ippFileGetLineNumber(f), ippFileGetFilename(f)); return (0); } else if (data->last_expect) @@ -3713,15 +3698,15 @@ parse_monitor_printer_state( } else { - print_fatal_error(data, "IN-GROUP without a preceding EXPECT on line %d of \"%s\".", f->linenum, f->filename); + print_fatal_error(data, "IN-GROUP without a preceding EXPECT on line %d of '%s'.", ippFileGetLineNumber(f), ippFileGetFilename(f)); return (0); } } else if (!_cups_strcasecmp(token, "IF-DEFINED")) { - if (!_ippFileReadToken(f, temp, sizeof(temp))) + if (!ippFileReadToken(f, temp, sizeof(temp))) { - print_fatal_error(data, "Missing IF-DEFINED name on line %d of \"%s\".", f->linenum, f->filename); + print_fatal_error(data, "Missing IF-DEFINED name on line %d of '%s'.", ippFileGetLineNumber(f), ippFileGetFilename(f)); return (0); } @@ -3731,15 +3716,15 @@ parse_monitor_printer_state( } else { - print_fatal_error(data, "IF-DEFINED without a preceding EXPECT on line %d of \"%s\".", f->linenum, f->filename); + print_fatal_error(data, "IF-DEFINED without a preceding EXPECT on line %d of '%s'.", ippFileGetLineNumber(f), ippFileGetFilename(f)); return (0); } } else if (!_cups_strcasecmp(token, "IF-NOT-DEFINED")) { - if (!_ippFileReadToken(f, temp, sizeof(temp))) + if (!ippFileReadToken(f, temp, sizeof(temp))) { - print_fatal_error(data, "Missing IF-NOT-DEFINED name on line %d of \"%s\".", f->linenum, f->filename); + print_fatal_error(data, "Missing IF-NOT-DEFINED name on line %d of '%s'.", ippFileGetLineNumber(f), ippFileGetFilename(f)); return (0); } @@ -3749,7 +3734,7 @@ parse_monitor_printer_state( } else { - print_fatal_error(data, "IF-NOT-DEFINED without a preceding EXPECT on line %d of \"%s\".", f->linenum, f->filename); + print_fatal_error(data, "IF-NOT-DEFINED without a preceding EXPECT on line %d of '%s'.", ippFileGetLineNumber(f), ippFileGetFilename(f)); return (0); } } @@ -3761,18 +3746,15 @@ parse_monitor_printer_state( } else { - print_fatal_error(data, "%s without a preceding EXPECT on line %d of \"%s\".", token, f->linenum, f->filename); + print_fatal_error(data, "%s without a preceding EXPECT on line %d of '%s'.", token, ippFileGetLineNumber(f), ippFileGetFilename(f)); return (0); } } else if (!_cups_strcasecmp(token, "WITH-VALUE")) { - off_t lastpos; /* Last file position */ - int lastline; /* Last line number */ - - if (!_ippFileReadToken(f, temp, sizeof(temp))) + if (!ippFileReadToken(f, temp, sizeof(temp))) { - print_fatal_error(data, "Missing %s value on line %d of \"%s\".", token, f->linenum, f->filename); + print_fatal_error(data, "Missing %s value on line %d of '%s'.", token, ippFileGetLineNumber(f), ippFileGetFilename(f)); return (0); } @@ -3785,11 +3767,11 @@ parse_monitor_printer_state( for (;;) { - lastpos = cupsFileTell(f->fp); - lastline = f->linenum; - ptr += strlen(ptr); + ippFileSavePosition(f); - if (!_ippFileReadToken(f, ptr, (sizeof(temp) - (size_t)(ptr - temp)))) + ptr += strlen(ptr); + + if (!ippFileReadToken(f, ptr, (sizeof(temp) - (size_t)(ptr - temp)))) break; if (!strcmp(ptr, ",")) @@ -3800,7 +3782,7 @@ parse_monitor_printer_state( ptr += strlen(ptr); - if (!_ippFileReadToken(f, ptr, (sizeof(temp) - (size_t)(ptr - temp)))) + if (!ippFileReadToken(f, ptr, (sizeof(temp) - (size_t)(ptr - temp)))) break; } else @@ -3809,8 +3791,7 @@ parse_monitor_printer_state( * Not another value, stop here... */ - cupsFileSeek(f->fp, lastpos); - f->linenum = lastline; + ippFileRestorePosition(f); *ptr = '\0'; break; } @@ -3822,7 +3803,7 @@ parse_monitor_printer_state( * Expand any variables in the value and then save it. */ - _ippVarsExpand(data->vars, value, temp, sizeof(value)); + ippFileExpandVars(f, value, temp, sizeof(value)); ptr = value + strlen(value) - 1; @@ -3862,18 +3843,58 @@ parse_monitor_printer_state( } else { - print_fatal_error(data, "%s without a preceding EXPECT on line %d of \"%s\".", token, f->linenum, f->filename); + print_fatal_error(data, "%s without a preceding EXPECT on line %d of '%s'.", token, ippFileGetLineNumber(f), ippFileGetFilename(f)); return (0); } } } - print_fatal_error(data, "Missing closing brace on line %d of \"%s\".", f->linenum, f->filename); + print_fatal_error(data, "Missing closing brace on line %d of '%s'.", ippFileGetLineNumber(f), ippFileGetFilename(f)); return (0); } +/* + * 'password_cb()' - Password callback using the IPP variables. + */ + +const char * /* O - Password string or @code NULL@ */ +password_cb( + const char *prompt, /* I - Prompt string (not used) */ + http_t *http, /* I - HTTP connection (not used) */ + const char *method, /* I - HTTP method (not used) */ + const char *resource, /* I - Resource path (not used) */ + void *user_data) /* I - IPP test data */ +{ + ipptool_test_t *test = (ipptool_test_t *)user_data; + /* IPP test data */ + const char *uriuser = ippFileGetVar(test->parent, "uriuser"), + /* Username */ + *uripassword = ippFileGetVar(test->parent, "uripassword"); + /* Password */ + + + (void)prompt; + (void)http; + (void)method; + (void)resource; + + if (uriuser && uripassword && test->password_tries < 3) + { + test->password_tries ++; + + cupsSetUser(uriuser); + + return (uripassword); + } + else + { + return (NULL); + } +} + + /* * 'pause_message()' - Display the message and pause until the user presses a key. */ @@ -4975,9 +4996,8 @@ timeout_cb(http_t *http, /* I - Connection to server */ * 'token_cb()' - Parse test file-specific tokens and run tests. */ -static int /* O - 1 to continue, 0 to stop */ -token_cb(_ipp_file_t *f, /* I - IPP file data */ - _ipp_vars_t *vars, /* I - IPP variables */ +static bool /* O - `true` to continue, `false` to stop */ +token_cb(ipp_file_t *f, /* I - IPP file data */ ipptool_test_t *data, /* I - Test data */ const char *token) /* I - Current token */ { @@ -4990,15 +5010,7 @@ token_cb(_ipp_file_t *f, /* I - IPP file data */ if (getenv("IPPTOOL_DEBUG")) fprintf(stderr, "ipptool: token='%s'\n", token); - if (!token) - { - /* - * Initialize state as needed (nothing for now...) - */ - - return (1); - } - else if (f->attrs) + if (f->attrs) { /* * Parse until we see a close brace... @@ -5046,13 +5058,13 @@ token_cb(_ipp_file_t *f, /* I - IPP file data */ { if (data->generate_params) { - print_fatal_error(data, "Extra GENERATE-FILE seen on line %d of \"%s\".", f->linenum, f->filename); - return (0); + print_fatal_error(data, "Extra GENERATE-FILE seen on line %d of '%s'.", ippFileGetLineNumber(f), ippFileGetFilename(f)); + return (false); } else if (data->file[0]) { - print_fatal_error(data, "Cannot use GENERATE-FILE on line %d of \"%s\" with FILE.", f->linenum, f->filename); - return (0); + print_fatal_error(data, "Cannot use GENERATE-FILE on line %d of '%s' with FILE.", ippFileGetLineNumber(f), ippFileGetFilename(f)); + return (false); } return (parse_generate_file(f, data)); @@ -5061,8 +5073,8 @@ token_cb(_ipp_file_t *f, /* I - IPP file data */ { if (data->monitor_uri) { - print_fatal_error(data, "Extra MONITOR-PRINTER-STATE seen on line %d of \"%s\".", f->linenum, f->filename); - return (0); + print_fatal_error(data, "Extra MONITOR-PRINTER-STATE seen on line %d of '%s'.", ippFileGetLineNumber(f), ippFileGetFilename(f)); + return (false); } return (parse_monitor_printer_state(f, data)); @@ -5075,13 +5087,13 @@ token_cb(_ipp_file_t *f, /* I - IPP file data */ * COMPRESSION gzip */ - if (_ippFileReadToken(f, temp, sizeof(temp))) + if (ippFileReadToken(f, temp, sizeof(temp))) { - _ippVarsExpand(vars, data->compression, temp, sizeof(data->compression)); + ippFileExpandVars(f, data->compression, temp, sizeof(data->compression)); if (strcmp(data->compression, "none") && strcmp(data->compression, "deflate") && strcmp(data->compression, "gzip")) { - print_fatal_error(data, "Unsupported COMPRESSION value \"%s\" on line %d of \"%s\".", data->compression, f->linenum, f->filename); - return (0); + print_fatal_error(data, "Unsupported COMPRESSION value \"%s\" on line %d of '%s'.", data->compression, ippFileGetLineNumber(f), ippFileGetFilename(f)); + return (false); } if (!strcmp(data->compression, "none")) @@ -5089,8 +5101,8 @@ token_cb(_ipp_file_t *f, /* I - IPP file data */ } else { - print_fatal_error(data, "Missing COMPRESSION value on line %d of \"%s\".", f->linenum, f->filename); - return (0); + print_fatal_error(data, "Missing COMPRESSION value on line %d of '%s'.", ippFileGetLineNumber(f), ippFileGetFilename(f)); + return (false); } } else if (!strcmp(token, "DEFINE")) @@ -5099,15 +5111,15 @@ token_cb(_ipp_file_t *f, /* I - IPP file data */ * DEFINE name value */ - if (_ippFileReadToken(f, name, sizeof(name)) && _ippFileReadToken(f, temp, sizeof(temp))) + if (ippFileReadToken(f, name, sizeof(name)) && ippFileReadToken(f, temp, sizeof(temp))) { - _ippVarsExpand(vars, value, temp, sizeof(value)); - _ippVarsSet(vars, name, value); + ippFileExpandVars(f, value, temp, sizeof(value)); + ippFileSetVar(f, name, value); } else { - print_fatal_error(data, "Missing DEFINE name and/or value on line %d of \"%s\".", f->linenum, f->filename); - return (0); + print_fatal_error(data, "Missing DEFINE name and/or value on line %d of '%s'.", ippFileGetLineNumber(f), ippFileGetFilename(f)); + return (false); } } else if (!strcmp(token, "IGNORE-ERRORS")) @@ -5117,14 +5129,14 @@ token_cb(_ipp_file_t *f, /* I - IPP file data */ * IGNORE-ERRORS no */ - if (_ippFileReadToken(f, temp, sizeof(temp)) && (!_cups_strcasecmp(temp, "yes") || !_cups_strcasecmp(temp, "no"))) + if (ippFileReadToken(f, temp, sizeof(temp)) && (!_cups_strcasecmp(temp, "yes") || !_cups_strcasecmp(temp, "no"))) { data->ignore_errors = !_cups_strcasecmp(temp, "yes"); } else { - print_fatal_error(data, "Missing IGNORE-ERRORS value on line %d of \"%s\".", f->linenum, f->filename); - return (0); + print_fatal_error(data, "Missing IGNORE-ERRORS value on line %d of '%s'.", ippFileGetLineNumber(f), ippFileGetFilename(f)); + return (false); } } else if (!_cups_strcasecmp(token, "NAME")) @@ -5133,14 +5145,14 @@ token_cb(_ipp_file_t *f, /* I - IPP file data */ * Name of test... */ - if (_ippFileReadToken(f, temp, sizeof(temp))) + if (ippFileReadToken(f, temp, sizeof(temp))) { - _ippVarsExpand(vars, data->name, temp, sizeof(data->name)); + ippFileExpandVars(f, data->name, temp, sizeof(data->name)); } else { - print_fatal_error(data, "Missing NAME string on line %d of \"%s\".", f->linenum, f->filename); - return (0); + print_fatal_error(data, "Missing NAME string on line %d of '%s'.", ippFileGetLineNumber(f), ippFileGetFilename(f)); + return (false); } } else if (!_cups_strcasecmp(token, "PAUSE")) @@ -5149,14 +5161,14 @@ token_cb(_ipp_file_t *f, /* I - IPP file data */ * Pause with a message... */ - if (_ippFileReadToken(f, temp, sizeof(temp))) + if (ippFileReadToken(f, temp, sizeof(temp))) { cupsCopyString(data->pause, temp, sizeof(data->pause)); } else { - print_fatal_error(data, "Missing PAUSE message on line %d of \"%s\".", f->linenum, f->filename); - return (0); + print_fatal_error(data, "Missing PAUSE message on line %d of '%s'.", ippFileGetLineNumber(f), ippFileGetFilename(f)); + return (false); } } else if (!strcmp(token, "REQUEST-ID")) @@ -5166,7 +5178,7 @@ token_cb(_ipp_file_t *f, /* I - IPP file data */ * REQUEST-ID random */ - if (_ippFileReadToken(f, temp, sizeof(temp))) + if (ippFileReadToken(f, temp, sizeof(temp))) { if (isdigit(temp[0] & 255)) { @@ -5178,14 +5190,14 @@ token_cb(_ipp_file_t *f, /* I - IPP file data */ } else { - print_fatal_error(data, "Bad REQUEST-ID value \"%s\" on line %d of \"%s\".", temp, f->linenum, f->filename); - return (0); + print_fatal_error(data, "Bad REQUEST-ID value \"%s\" on line %d of '%s'.", temp, ippFileGetLineNumber(f), ippFileGetFilename(f)); + return (false); } } else { - print_fatal_error(data, "Missing REQUEST-ID value on line %d of \"%s\".", f->linenum, f->filename); - return (0); + print_fatal_error(data, "Missing REQUEST-ID value on line %d of '%s'.", ippFileGetLineNumber(f), ippFileGetFilename(f)); + return (false); } } else if (!strcmp(token, "PASS-IF-DEFINED")) @@ -5194,15 +5206,15 @@ token_cb(_ipp_file_t *f, /* I - IPP file data */ * PASS-IF-DEFINED variable */ - if (_ippFileReadToken(f, name, sizeof(name))) + if (ippFileReadToken(f, name, sizeof(name))) { if (_ippVarsGet(vars, name)) data->pass_test = 1; } else { - print_fatal_error(data, "Missing PASS-IF-DEFINED value on line %d of \"%s\".", f->linenum, f->filename); - return (0); + print_fatal_error(data, "Missing PASS-IF-DEFINED value on line %d of '%s'.", ippFileGetLineNumber(f), ippFileGetFilename(f)); + return (false); } } else if (!strcmp(token, "PASS-IF-NOT-DEFINED")) @@ -5211,15 +5223,15 @@ token_cb(_ipp_file_t *f, /* I - IPP file data */ * PASS-IF-NOT-DEFINED variable */ - if (_ippFileReadToken(f, name, sizeof(name))) + if (ippFileReadToken(f, name, sizeof(name))) { if (!_ippVarsGet(vars, name)) data->pass_test = 1; } else { - print_fatal_error(data, "Missing PASS-IF-NOT-DEFINED value on line %d of \"%s\".", f->linenum, f->filename); - return (0); + print_fatal_error(data, "Missing PASS-IF-NOT-DEFINED value on line %d of '%s'.", ippFileGetLineNumber(f), ippFileGetFilename(f)); + return (false); } } else if (!strcmp(token, "SKIP-IF-DEFINED")) @@ -5228,15 +5240,15 @@ token_cb(_ipp_file_t *f, /* I - IPP file data */ * SKIP-IF-DEFINED variable */ - if (_ippFileReadToken(f, name, sizeof(name))) + if (ippFileReadToken(f, name, sizeof(name))) { if (_ippVarsGet(vars, name) || getenv(name)) data->skip_test = 1; } else { - print_fatal_error(data, "Missing SKIP-IF-DEFINED value on line %d of \"%s\".", f->linenum, f->filename); - return (0); + print_fatal_error(data, "Missing SKIP-IF-DEFINED value on line %d of '%s'.", ippFileGetLineNumber(f), ippFileGetFilename(f)); + return (false); } } else if (!strcmp(token, "SKIP-IF-MISSING")) @@ -5245,20 +5257,20 @@ token_cb(_ipp_file_t *f, /* I - IPP file data */ * SKIP-IF-MISSING filename */ - if (_ippFileReadToken(f, temp, sizeof(temp))) + if (ippFileReadToken(f, temp, sizeof(temp))) { char filename[1024]; /* Filename */ - _ippVarsExpand(vars, value, temp, sizeof(value)); - get_filename(f->filename, filename, temp, sizeof(filename)); + ippFileExpandVars(f, value, temp, sizeof(value)); + get_filename(ippFileGetFilename(f), filename, temp, sizeof(filename)); if (access(filename, R_OK)) data->skip_test = 1; } else { - print_fatal_error(data, "Missing SKIP-IF-MISSING filename on line %d of \"%s\".", f->linenum, f->filename); - return (0); + print_fatal_error(data, "Missing SKIP-IF-MISSING filename on line %d of '%s'.", ippFileGetLineNumber(f), ippFileGetFilename(f)); + return (false); } } else if (!strcmp(token, "SKIP-IF-NOT-DEFINED")) @@ -5267,15 +5279,15 @@ token_cb(_ipp_file_t *f, /* I - IPP file data */ * SKIP-IF-NOT-DEFINED variable */ - if (_ippFileReadToken(f, name, sizeof(name))) + if (ippFileReadToken(f, name, sizeof(name))) { if (!_ippVarsGet(vars, name) && !getenv(name)) data->skip_test = 1; } else { - print_fatal_error(data, "Missing SKIP-IF-NOT-DEFINED value on line %d of \"%s\".", f->linenum, f->filename); - return (0); + print_fatal_error(data, "Missing SKIP-IF-NOT-DEFINED value on line %d of '%s'.", ippFileGetLineNumber(f), ippFileGetFilename(f)); + return (false); } } else if (!strcmp(token, "SKIP-PREVIOUS-ERROR")) @@ -5285,14 +5297,14 @@ token_cb(_ipp_file_t *f, /* I - IPP file data */ * SKIP-PREVIOUS-ERROR no */ - if (_ippFileReadToken(f, temp, sizeof(temp)) && (!_cups_strcasecmp(temp, "yes") || !_cups_strcasecmp(temp, "no"))) + if (ippFileReadToken(f, temp, sizeof(temp)) && (!_cups_strcasecmp(temp, "yes") || !_cups_strcasecmp(temp, "no"))) { data->skip_previous = !_cups_strcasecmp(temp, "yes"); } else { - print_fatal_error(data, "Missing SKIP-PREVIOUS-ERROR value on line %d of \"%s\".", f->linenum, f->filename); - return (0); + print_fatal_error(data, "Missing SKIP-PREVIOUS-ERROR value on line %d of '%s'.", ippFileGetLineNumber(f), ippFileGetFilename(f)); + return (false); } } else if (!strcmp(token, "TEST-ID")) @@ -5301,14 +5313,14 @@ token_cb(_ipp_file_t *f, /* I - IPP file data */ * TEST-ID "string" */ - if (_ippFileReadToken(f, temp, sizeof(temp))) + if (ippFileReadToken(f, temp, sizeof(temp))) { - _ippVarsExpand(vars, data->test_id, temp, sizeof(data->test_id)); + ippFileExpandVars(f, data->test_id, temp, sizeof(data->test_id)); } else { - print_fatal_error(data, "Missing TEST-ID value on line %d of \"%s\".", f->linenum, f->filename); - return (0); + print_fatal_error(data, "Missing TEST-ID value on line %d of '%s'.", ippFileGetLineNumber(f), ippFileGetFilename(f)); + return (false); } } else if (!strcmp(token, "TRANSFER")) @@ -5319,7 +5331,7 @@ token_cb(_ipp_file_t *f, /* I - IPP file data */ * TRANSFER length */ - if (_ippFileReadToken(f, temp, sizeof(temp))) + if (ippFileReadToken(f, temp, sizeof(temp))) { if (!strcmp(temp, "auto")) { @@ -5335,19 +5347,19 @@ token_cb(_ipp_file_t *f, /* I - IPP file data */ } else { - print_fatal_error(data, "Bad TRANSFER value \"%s\" on line %d of \"%s\".", temp, f->linenum, f->filename); - return (0); + print_fatal_error(data, "Bad TRANSFER value \"%s\" on line %d of '%s'.", temp, ippFileGetLineNumber(f), ippFileGetFilename(f)); + return (false); } } else { - print_fatal_error(data, "Missing TRANSFER value on line %d of \"%s\".", f->linenum, f->filename); - return (0); + print_fatal_error(data, "Missing TRANSFER value on line %d of '%s'.", ippFileGetLineNumber(f), ippFileGetFilename(f)); + return (false); } } else if (!_cups_strcasecmp(token, "VERSION")) { - if (_ippFileReadToken(f, temp, sizeof(temp))) + if (ippFileReadToken(f, temp, sizeof(temp))) { if (!strcmp(temp, "0.0")) { @@ -5375,14 +5387,14 @@ token_cb(_ipp_file_t *f, /* I - IPP file data */ } else { - print_fatal_error(data, "Bad VERSION \"%s\" on line %d of \"%s\".", temp, f->linenum, f->filename); - return (0); + print_fatal_error(data, "Bad VERSION \"%s\" on line %d of '%s'.", temp, ippFileGetLineNumber(f), ippFileGetFilename(f)); + return (false); } } else { - print_fatal_error(data, "Missing VERSION number on line %d of \"%s\".", f->linenum, f->filename); - return (0); + print_fatal_error(data, "Missing VERSION number on line %d of '%s'.", ippFileGetLineNumber(f), ippFileGetFilename(f)); + return (false); } } else if (!_cups_strcasecmp(token, "RESOURCE")) @@ -5391,10 +5403,10 @@ token_cb(_ipp_file_t *f, /* I - IPP file data */ * Resource name... */ - if (!_ippFileReadToken(f, data->resource, sizeof(data->resource))) + if (!ippFileReadToken(f, data->resource, sizeof(data->resource))) { - print_fatal_error(data, "Missing RESOURCE path on line %d of \"%s\".", f->linenum, f->filename); - return (0); + print_fatal_error(data, "Missing RESOURCE path on line %d of '%s'.", ippFileGetLineNumber(f), ippFileGetFilename(f)); + return (false); } } else if (!_cups_strcasecmp(token, "OPERATION")) @@ -5405,18 +5417,18 @@ token_cb(_ipp_file_t *f, /* I - IPP file data */ ipp_op_t op; /* Operation code */ - if (!_ippFileReadToken(f, temp, sizeof(temp))) + if (!ippFileReadToken(f, temp, sizeof(temp))) { - print_fatal_error(data, "Missing OPERATION code on line %d of \"%s\".", f->linenum, f->filename); - return (0); + print_fatal_error(data, "Missing OPERATION code on line %d of '%s'.", ippFileGetLineNumber(f), ippFileGetFilename(f)); + return (false); } - _ippVarsExpand(vars, value, temp, sizeof(value)); + ippFileExpandVars(f, value, temp, sizeof(value)); if ((op = ippOpValue(value)) == (ipp_op_t)-1 && (op = (ipp_op_t)strtol(value, NULL, 0)) == 0) { - print_fatal_error(data, "Bad OPERATION code \"%s\" on line %d of \"%s\".", temp, f->linenum, f->filename); - return (0); + print_fatal_error(data, "Bad OPERATION code \"%s\" on line %d of '%s'.", temp, ippFileGetLineNumber(f), ippFileGetFilename(f)); + return (false); } ippSetOperation(f->attrs, op); @@ -5429,16 +5441,16 @@ token_cb(_ipp_file_t *f, /* I - IPP file data */ ipp_tag_t group_tag; /* Group tag */ - if (!_ippFileReadToken(f, temp, sizeof(temp))) + if (!ippFileReadToken(f, temp, sizeof(temp))) { - print_fatal_error(data, "Missing GROUP tag on line %d of \"%s\".", f->linenum, f->filename); - return (0); + print_fatal_error(data, "Missing GROUP tag on line %d of '%s'.", ippFileGetLineNumber(f), ippFileGetFilename(f)); + return (false); } if ((group_tag = ippTagValue(temp)) == IPP_TAG_ZERO || group_tag >= IPP_TAG_UNSUPPORTED_VALUE) { - print_fatal_error(data, "Bad GROUP tag \"%s\" on line %d of \"%s\".", temp, f->linenum, f->filename); - return (0); + print_fatal_error(data, "Bad GROUP tag \"%s\" on line %d of '%s'.", temp, ippFileGetLineNumber(f), ippFileGetFilename(f)); + return (false); } if (group_tag == f->group_tag) @@ -5454,18 +5466,18 @@ token_cb(_ipp_file_t *f, /* I - IPP file data */ double dval; /* Delay value */ - if (!_ippFileReadToken(f, temp, sizeof(temp))) + if (!ippFileReadToken(f, temp, sizeof(temp))) { - print_fatal_error(data, "Missing DELAY value on line %d of \"%s\".", f->linenum, f->filename); - return (0); + print_fatal_error(data, "Missing DELAY value on line %d of '%s'.", ippFileGetLineNumber(f), ippFileGetFilename(f)); + return (false); } - _ippVarsExpand(vars, value, temp, sizeof(value)); + ippFileExpandVars(f, value, temp, sizeof(value)); if ((dval = _cupsStrScand(value, &ptr, localeconv())) < 0.0 || (*ptr && *ptr != ',')) { - print_fatal_error(data, "Bad DELAY value \"%s\" on line %d of \"%s\".", value, f->linenum, f->filename); - return (0); + print_fatal_error(data, "Bad DELAY value \"%s\" on line %d of '%s'.", value, ippFileGetLineNumber(f), ippFileGetFilename(f)); + return (false); } data->delay = (useconds_t)(1000000.0 * dval); @@ -5474,8 +5486,8 @@ token_cb(_ipp_file_t *f, /* I - IPP file data */ { if ((dval = _cupsStrScand(ptr + 1, &ptr, localeconv())) <= 0.0 || *ptr) { - print_fatal_error(data, "Bad DELAY value \"%s\" on line %d of \"%s\".", value, f->linenum, f->filename); - return (0); + print_fatal_error(data, "Bad DELAY value \"%s\" on line %d of '%s'.", value, ippFileGetLineNumber(f), ippFileGetFilename(f)); + return (false); } data->repeat_interval = (useconds_t)(1000000.0 * dval); @@ -5491,28 +5503,28 @@ token_cb(_ipp_file_t *f, /* I - IPP file data */ if (data->file[0]) { - print_fatal_error(data, "Extra FILE seen on line %d of \"%s\".", f->linenum, f->filename); - return (0); + print_fatal_error(data, "Extra FILE seen on line %d of '%s'.", ippFileGetLineNumber(f), ippFileGetFilename(f)); + return (false); } else if (data->generate_params) { - print_fatal_error(data, "Cannot use FILE on line %d of \"%s\" with GENERATE-FILE.", f->linenum, f->filename); - return (0); + print_fatal_error(data, "Cannot use FILE on line %d of '%s' with GENERATE-FILE.", ippFileGetLineNumber(f), ippFileGetFilename(f)); + return (false); } - if (!_ippFileReadToken(f, temp, sizeof(temp))) + if (!ippFileReadToken(f, temp, sizeof(temp))) { - print_fatal_error(data, "Missing FILE filename on line %d of \"%s\".", f->linenum, f->filename); - return (0); + print_fatal_error(data, "Missing FILE filename on line %d of '%s'.", ippFileGetLineNumber(f), ippFileGetFilename(f)); + return (false); } - _ippVarsExpand(vars, value, temp, sizeof(value)); - get_filename(f->filename, data->file, value, sizeof(data->file)); + ippFileExpandVars(f, value, temp, sizeof(value)); + get_filename(ippFileGetFilename(f), data->file, value, sizeof(data->file)); if (access(data->file, R_OK)) { - print_fatal_error(data, "Filename \"%s\" (mapped to \"%s\") on line %d of \"%s\" cannot be read.", value, data->file, f->linenum, f->filename); - return (0); + print_fatal_error(data, "Filename \"%s\" (mapped to \"%s\") on line %d of '%s' cannot be read.", value, data->file, ippFileGetLineNumber(f), ippFileGetFilename(f)); + return (false); } } else if (!_cups_strcasecmp(token, "STATUS")) @@ -5523,20 +5535,20 @@ token_cb(_ipp_file_t *f, /* I - IPP file data */ if (data->num_statuses >= (int)(sizeof(data->statuses) / sizeof(data->statuses[0]))) { - print_fatal_error(data, "Too many STATUS's on line %d of \"%s\".", f->linenum, f->filename); - return (0); + print_fatal_error(data, "Too many STATUS's on line %d of '%s'.", ippFileGetLineNumber(f), ippFileGetFilename(f)); + return (false); } - if (!_ippFileReadToken(f, temp, sizeof(temp))) + if (!ippFileReadToken(f, temp, sizeof(temp))) { - print_fatal_error(data, "Missing STATUS code on line %d of \"%s\".", f->linenum, f->filename); - return (0); + print_fatal_error(data, "Missing STATUS code on line %d of '%s'.", ippFileGetLineNumber(f), ippFileGetFilename(f)); + return (false); } if ((data->statuses[data->num_statuses].status = ippErrorValue(temp)) == (ipp_status_t)-1 && (data->statuses[data->num_statuses].status = (ipp_status_t)strtol(temp, NULL, 0)) == 0) { - print_fatal_error(data, "Bad STATUS code \"%s\" on line %d of \"%s\".", temp, f->linenum, f->filename); - return (0); + print_fatal_error(data, "Bad STATUS code \"%s\" on line %d of '%s'.", temp, ippFileGetLineNumber(f), ippFileGetFilename(f)); + return (false); } data->last_status = data->statuses + data->num_statuses; @@ -5560,14 +5572,14 @@ token_cb(_ipp_file_t *f, /* I - IPP file data */ if (data->num_expects >= (int)(sizeof(data->expects) / sizeof(data->expects[0]))) { - print_fatal_error(data, "Too many EXPECT's on line %d of \"%s\".", f->linenum, f->filename); - return (0); + print_fatal_error(data, "Too many EXPECT's on line %d of '%s'.", ippFileGetLineNumber(f), ippFileGetFilename(f)); + return (false); } - if (!_ippFileReadToken(f, name, sizeof(name))) + if (!ippFileReadToken(f, name, sizeof(name))) { - print_fatal_error(data, "Missing EXPECT name on line %d of \"%s\".", f->linenum, f->filename); - return (0); + print_fatal_error(data, "Missing EXPECT name on line %d of '%s'.", ippFileGetLineNumber(f), ippFileGetFilename(f)); + return (false); } data->last_expect = data->expects + data->num_expects; @@ -5594,16 +5606,16 @@ token_cb(_ipp_file_t *f, /* I - IPP file data */ { size_t count; /* Count value */ - if (!_ippFileReadToken(f, temp, sizeof(temp))) + if (!ippFileReadToken(f, temp, sizeof(temp))) { - print_fatal_error(data, "Missing COUNT number on line %d of \"%s\".", f->linenum, f->filename); - return (0); + print_fatal_error(data, "Missing COUNT number on line %d of '%s'.", ippFileGetLineNumber(f), ippFileGetFilename(f)); + return (false); } if ((count = strtoul(temp, NULL, 10)) == ULONG_MAX) { - print_fatal_error(data, "Bad COUNT \"%s\" on line %d of \"%s\".", temp, f->linenum, f->filename); - return (0); + print_fatal_error(data, "Bad COUNT \"%s\" on line %d of '%s'.", temp, ippFileGetLineNumber(f), ippFileGetFilename(f)); + return (false); } if (data->last_expect) @@ -5612,16 +5624,16 @@ token_cb(_ipp_file_t *f, /* I - IPP file data */ } else { - print_fatal_error(data, "COUNT without a preceding EXPECT on line %d of \"%s\".", f->linenum, f->filename); - return (0); + print_fatal_error(data, "COUNT without a preceding EXPECT on line %d of '%s'.", ippFileGetLineNumber(f), ippFileGetFilename(f)); + return (false); } } else if (!_cups_strcasecmp(token, "DEFINE-MATCH")) { - if (!_ippFileReadToken(f, temp, sizeof(temp))) + if (!ippFileReadToken(f, temp, sizeof(temp))) { - print_fatal_error(data, "Missing DEFINE-MATCH variable on line %d of \"%s\".", f->linenum, f->filename); - return (0); + print_fatal_error(data, "Missing DEFINE-MATCH variable on line %d of '%s'.", ippFileGetLineNumber(f), ippFileGetFilename(f)); + return (false); } if (data->last_expect) @@ -5634,16 +5646,16 @@ token_cb(_ipp_file_t *f, /* I - IPP file data */ } else { - print_fatal_error(data, "DEFINE-MATCH without a preceding EXPECT or STATUS on line %d of \"%s\".", f->linenum, f->filename); - return (0); + print_fatal_error(data, "DEFINE-MATCH without a preceding EXPECT or STATUS on line %d of '%s'.", ippFileGetLineNumber(f), ippFileGetFilename(f)); + return (false); } } else if (!_cups_strcasecmp(token, "DEFINE-NO-MATCH")) { - if (!_ippFileReadToken(f, temp, sizeof(temp))) + if (!ippFileReadToken(f, temp, sizeof(temp))) { - print_fatal_error(data, "Missing DEFINE-NO-MATCH variable on line %d of \"%s\".", f->linenum, f->filename); - return (0); + print_fatal_error(data, "Missing DEFINE-NO-MATCH variable on line %d of '%s'.", ippFileGetLineNumber(f), ippFileGetFilename(f)); + return (false); } if (data->last_expect) @@ -5656,16 +5668,16 @@ token_cb(_ipp_file_t *f, /* I - IPP file data */ } else { - print_fatal_error(data, "DEFINE-NO-MATCH without a preceding EXPECT or STATUS on line %d of \"%s\".", f->linenum, f->filename); - return (0); + print_fatal_error(data, "DEFINE-NO-MATCH without a preceding EXPECT or STATUS on line %d of '%s'.", ippFileGetLineNumber(f), ippFileGetFilename(f)); + return (false); } } else if (!_cups_strcasecmp(token, "DEFINE-VALUE")) { - if (!_ippFileReadToken(f, temp, sizeof(temp))) + if (!ippFileReadToken(f, temp, sizeof(temp))) { - print_fatal_error(data, "Missing DEFINE-VALUE variable on line %d of \"%s\".", f->linenum, f->filename); - return (0); + print_fatal_error(data, "Missing DEFINE-VALUE variable on line %d of '%s'.", ippFileGetLineNumber(f), ippFileGetFilename(f)); + return (false); } if (data->last_expect) @@ -5674,16 +5686,16 @@ token_cb(_ipp_file_t *f, /* I - IPP file data */ } else { - print_fatal_error(data, "DEFINE-VALUE without a preceding EXPECT on line %d of \"%s\".", f->linenum, f->filename); - return (0); + print_fatal_error(data, "DEFINE-VALUE without a preceding EXPECT on line %d of '%s'.", ippFileGetLineNumber(f), ippFileGetFilename(f)); + return (false); } } else if (!_cups_strcasecmp(token, "DISPLAY-MATCH")) { - if (!_ippFileReadToken(f, temp, sizeof(temp))) + if (!ippFileReadToken(f, temp, sizeof(temp))) { - print_fatal_error(data, "Missing DISPLAY-MATCH mesaage on line %d of \"%s\".", f->linenum, f->filename); - return (0); + print_fatal_error(data, "Missing DISPLAY-MATCH mesaage on line %d of '%s'.", ippFileGetLineNumber(f), ippFileGetFilename(f)); + return (false); } if (data->last_expect) @@ -5692,16 +5704,16 @@ token_cb(_ipp_file_t *f, /* I - IPP file data */ } else { - print_fatal_error(data, "DISPLAY-MATCH without a preceding EXPECT on line %d of \"%s\".", f->linenum, f->filename); - return (0); + print_fatal_error(data, "DISPLAY-MATCH without a preceding EXPECT on line %d of '%s'.", ippFileGetLineNumber(f), ippFileGetFilename(f)); + return (false); } } else if (!_cups_strcasecmp(token, "OF-TYPE")) { - if (!_ippFileReadToken(f, temp, sizeof(temp))) + if (!ippFileReadToken(f, temp, sizeof(temp))) { - print_fatal_error(data, "Missing OF-TYPE value tag(s) on line %d of \"%s\".", f->linenum, f->filename); - return (0); + print_fatal_error(data, "Missing OF-TYPE value tag(s) on line %d of '%s'.", ippFileGetLineNumber(f), ippFileGetFilename(f)); + return (false); } if (data->last_expect) @@ -5710,24 +5722,24 @@ token_cb(_ipp_file_t *f, /* I - IPP file data */ } else { - print_fatal_error(data, "OF-TYPE without a preceding EXPECT on line %d of \"%s\".", f->linenum, f->filename); - return (0); + print_fatal_error(data, "OF-TYPE without a preceding EXPECT on line %d of '%s'.", ippFileGetLineNumber(f), ippFileGetFilename(f)); + return (false); } } else if (!_cups_strcasecmp(token, "IN-GROUP")) { ipp_tag_t in_group; /* IN-GROUP value */ - if (!_ippFileReadToken(f, temp, sizeof(temp))) + if (!ippFileReadToken(f, temp, sizeof(temp))) { - print_fatal_error(data, "Missing IN-GROUP group tag on line %d of \"%s\".", f->linenum, f->filename); - return (0); + print_fatal_error(data, "Missing IN-GROUP group tag on line %d of '%s'.", ippFileGetLineNumber(f), ippFileGetFilename(f)); + return (false); } if ((in_group = ippTagValue(temp)) == IPP_TAG_ZERO || in_group >= IPP_TAG_UNSUPPORTED_VALUE) { - print_fatal_error(data, "Bad IN-GROUP group tag \"%s\" on line %d of \"%s\".", temp, f->linenum, f->filename); - return (0); + print_fatal_error(data, "Bad IN-GROUP group tag \"%s\" on line %d of '%s'.", temp, ippFileGetLineNumber(f), ippFileGetFilename(f)); + return (false); } else if (data->last_expect) { @@ -5735,21 +5747,21 @@ token_cb(_ipp_file_t *f, /* I - IPP file data */ } else { - print_fatal_error(data, "IN-GROUP without a preceding EXPECT on line %d of \"%s\".", f->linenum, f->filename); - return (0); + print_fatal_error(data, "IN-GROUP without a preceding EXPECT on line %d of '%s'.", ippFileGetLineNumber(f), ippFileGetFilename(f)); + return (false); } } else if (!_cups_strcasecmp(token, "REPEAT-LIMIT")) { - if (!_ippFileReadToken(f, temp, sizeof(temp))) + if (!ippFileReadToken(f, temp, sizeof(temp))) { - print_fatal_error(data, "Missing REPEAT-LIMIT value on line %d of \"%s\".", f->linenum, f->filename); - return (0); + print_fatal_error(data, "Missing REPEAT-LIMIT value on line %d of '%s'.", ippFileGetLineNumber(f), ippFileGetFilename(f)); + return (false); } else if (atoi(temp) <= 0) { - print_fatal_error(data, "Bad REPEAT-LIMIT value on line %d of \"%s\".", f->linenum, f->filename); - return (0); + print_fatal_error(data, "Bad REPEAT-LIMIT value on line %d of '%s'.", ippFileGetLineNumber(f), ippFileGetFilename(f)); + return (false); } if (data->last_status) @@ -5762,8 +5774,8 @@ token_cb(_ipp_file_t *f, /* I - IPP file data */ } else { - print_fatal_error(data, "REPEAT-LIMIT without a preceding EXPECT or STATUS on line %d of \"%s\".", f->linenum, f->filename); - return (0); + print_fatal_error(data, "REPEAT-LIMIT without a preceding EXPECT or STATUS on line %d of '%s'.", ippFileGetLineNumber(f), ippFileGetFilename(f)); + return (false); } } else if (!_cups_strcasecmp(token, "REPEAT-MATCH")) @@ -5778,8 +5790,8 @@ token_cb(_ipp_file_t *f, /* I - IPP file data */ } else { - print_fatal_error(data, "REPEAT-MATCH without a preceding EXPECT or STATUS on line %d of \"%s\".", f->linenum, f->filename); - return (0); + print_fatal_error(data, "REPEAT-MATCH without a preceding EXPECT or STATUS on line %d of '%s'.", ippFileGetLineNumber(f), ippFileGetFilename(f)); + return (false); } } else if (!_cups_strcasecmp(token, "REPEAT-NO-MATCH")) @@ -5794,16 +5806,16 @@ token_cb(_ipp_file_t *f, /* I - IPP file data */ } else { - print_fatal_error(data, "REPEAT-NO-MATCH without a preceding EXPECT or STATUS on line %d of \"%s\".", f->linenum, f->filename); - return (0); + print_fatal_error(data, "REPEAT-NO-MATCH without a preceding EXPECT or STATUS on line %d of '%s'.", ippFileGetLineNumber(f), ippFileGetFilename(f)); + return (false); } } else if (!_cups_strcasecmp(token, "SAME-COUNT-AS")) { - if (!_ippFileReadToken(f, temp, sizeof(temp))) + if (!ippFileReadToken(f, temp, sizeof(temp))) { - print_fatal_error(data, "Missing SAME-COUNT-AS name on line %d of \"%s\".", f->linenum, f->filename); - return (0); + print_fatal_error(data, "Missing SAME-COUNT-AS name on line %d of '%s'.", ippFileGetLineNumber(f), ippFileGetFilename(f)); + return (false); } if (data->last_expect) @@ -5812,16 +5824,16 @@ token_cb(_ipp_file_t *f, /* I - IPP file data */ } else { - print_fatal_error(data, "SAME-COUNT-AS without a preceding EXPECT on line %d of \"%s\".", f->linenum, f->filename); - return (0); + print_fatal_error(data, "SAME-COUNT-AS without a preceding EXPECT on line %d of '%s'.", ippFileGetLineNumber(f), ippFileGetFilename(f)); + return (false); } } else if (!_cups_strcasecmp(token, "IF-DEFINED")) { - if (!_ippFileReadToken(f, temp, sizeof(temp))) + if (!ippFileReadToken(f, temp, sizeof(temp))) { - print_fatal_error(data, "Missing IF-DEFINED name on line %d of \"%s\".", f->linenum, f->filename); - return (0); + print_fatal_error(data, "Missing IF-DEFINED name on line %d of '%s'.", ippFileGetLineNumber(f), ippFileGetFilename(f)); + return (false); } if (data->last_expect) @@ -5834,16 +5846,16 @@ token_cb(_ipp_file_t *f, /* I - IPP file data */ } else { - print_fatal_error(data, "IF-DEFINED without a preceding EXPECT or STATUS on line %d of \"%s\".", f->linenum, f->filename); - return (0); + print_fatal_error(data, "IF-DEFINED without a preceding EXPECT or STATUS on line %d of '%s'.", ippFileGetLineNumber(f), ippFileGetFilename(f)); + return (false); } } else if (!_cups_strcasecmp(token, "IF-NOT-DEFINED")) { - if (!_ippFileReadToken(f, temp, sizeof(temp))) + if (!ippFileReadToken(f, temp, sizeof(temp))) { - print_fatal_error(data, "Missing IF-NOT-DEFINED name on line %d of \"%s\".", f->linenum, f->filename); - return (0); + print_fatal_error(data, "Missing IF-NOT-DEFINED name on line %d of '%s'.", ippFileGetLineNumber(f), ippFileGetFilename(f)); + return (false); } if (data->last_expect) @@ -5856,8 +5868,8 @@ token_cb(_ipp_file_t *f, /* I - IPP file data */ } else { - print_fatal_error(data, "IF-NOT-DEFINED without a preceding EXPECT or STATUS on line %d of \"%s\".", f->linenum, f->filename); - return (0); + print_fatal_error(data, "IF-NOT-DEFINED without a preceding EXPECT or STATUS on line %d of '%s'.", ippFileGetLineNumber(f), ippFileGetFilename(f)); + return (false); } } else if (!_cups_strcasecmp(token, "WITH-DISTINCT-VALUES")) @@ -5868,8 +5880,8 @@ token_cb(_ipp_file_t *f, /* I - IPP file data */ } else { - print_fatal_error(data, "%s without a preceding EXPECT on line %d of \"%s\".", token, f->linenum, f->filename); - return (0); + print_fatal_error(data, "%s without a preceding EXPECT on line %d of '%s'.", token, ippFileGetLineNumber(f), ippFileGetFilename(f)); + return (false); } } else if (!_cups_strcasecmp(token, "WITH-ALL-VALUES") || @@ -5897,10 +5909,10 @@ token_cb(_ipp_file_t *f, /* I - IPP file data */ data->last_expect->with_flags |= IPPTOOL_WITH_ALL; } - if (!_ippFileReadToken(f, temp, sizeof(temp))) + if (!ippFileReadToken(f, temp, sizeof(temp))) { - print_fatal_error(data, "Missing %s value on line %d of \"%s\".", token, f->linenum, f->filename); - return (0); + print_fatal_error(data, "Missing %s value on line %d of '%s'.", token, ippFileGetLineNumber(f), ippFileGetFilename(f)); + return (false); } /* @@ -5913,10 +5925,10 @@ token_cb(_ipp_file_t *f, /* I - IPP file data */ for (;;) { lastpos = cupsFileTell(f->fp); - lastline = f->linenum; + lastline = ippFileGetLineNumber(f); ptr += strlen(ptr); - if (!_ippFileReadToken(f, ptr, (sizeof(temp) - (size_t)(ptr - temp)))) + if (!ippFileReadToken(f, ptr, (sizeof(temp) - (size_t)(ptr - temp)))) break; if (!strcmp(ptr, ",")) @@ -5927,7 +5939,7 @@ token_cb(_ipp_file_t *f, /* I - IPP file data */ ptr += strlen(ptr); - if (!_ippFileReadToken(f, ptr, (sizeof(temp) - (size_t)(ptr - temp)))) + if (!ippFileReadToken(f, ptr, (sizeof(temp) - (size_t)(ptr - temp)))) break; } else @@ -5937,7 +5949,7 @@ token_cb(_ipp_file_t *f, /* I - IPP file data */ */ cupsFileSeek(f->fp, lastpos); - f->linenum = lastline; + ippFileGetLineNumber(f) = lastline; *ptr = '\0'; break; } @@ -5949,7 +5961,7 @@ token_cb(_ipp_file_t *f, /* I - IPP file data */ * Expand any variables in the value and then save it. */ - _ippVarsExpand(vars, value, temp, sizeof(value)); + ippFileExpandVars(f, value, temp, sizeof(value)); ptr = value + strlen(value) - 1; @@ -5989,16 +6001,16 @@ token_cb(_ipp_file_t *f, /* I - IPP file data */ } else { - print_fatal_error(data, "%s without a preceding EXPECT on line %d of \"%s\".", token, f->linenum, f->filename); - return (0); + print_fatal_error(data, "%s without a preceding EXPECT on line %d of '%s'.", token, ippFileGetLineNumber(f), ippFileGetFilename(f)); + return (false); } } else if (!_cups_strcasecmp(token, "WITH-VALUE-FROM")) { - if (!_ippFileReadToken(f, temp, sizeof(temp))) + if (!ippFileReadToken(f, temp, sizeof(temp))) { - print_fatal_error(data, "Missing %s value on line %d of \"%s\".", token, f->linenum, f->filename); - return (0); + print_fatal_error(data, "Missing %s value on line %d of '%s'.", token, ippFileGetLineNumber(f), ippFileGetFilename(f)); + return (false); } if (data->last_expect) @@ -6007,15 +6019,15 @@ token_cb(_ipp_file_t *f, /* I - IPP file data */ * Expand any variables in the value and then save it. */ - _ippVarsExpand(vars, value, temp, sizeof(value)); + ippFileExpandVars(f, value, temp, sizeof(value)); data->last_expect->with_value_from = strdup(value); data->last_expect->with_flags = IPPTOOL_WITH_LITERAL; } else { - print_fatal_error(data, "%s without a preceding EXPECT on line %d of \"%s\".", token, f->linenum, f->filename); - return (0); + print_fatal_error(data, "%s without a preceding EXPECT on line %d of '%s'.", token, ippFileGetLineNumber(f), ippFileGetFilename(f)); + return (false); } } else if (!_cups_strcasecmp(token, "DISPLAY")) @@ -6026,14 +6038,14 @@ token_cb(_ipp_file_t *f, /* I - IPP file data */ if (data->num_displayed >= (int)(sizeof(data->displayed) / sizeof(data->displayed[0]))) { - print_fatal_error(data, "Too many DISPLAY's on line %d of \"%s\".", f->linenum, f->filename); - return (0); + print_fatal_error(data, "Too many DISPLAY's on line %d of '%s'.", ippFileGetLineNumber(f), ippFileGetFilename(f)); + return (false); } - if (!_ippFileReadToken(f, temp, sizeof(temp))) + if (!ippFileReadToken(f, temp, sizeof(temp))) { - print_fatal_error(data, "Missing DISPLAY name on line %d of \"%s\".", f->linenum, f->filename); - return (0); + print_fatal_error(data, "Missing DISPLAY name on line %d of '%s'.", ippFileGetLineNumber(f), ippFileGetFilename(f)); + return (false); } data->displayed[data->num_displayed] = strdup(temp); @@ -6041,8 +6053,8 @@ token_cb(_ipp_file_t *f, /* I - IPP file data */ } else { - print_fatal_error(data, "Unexpected token %s seen on line %d of \"%s\".", token, f->linenum, f->filename); - return (0); + print_fatal_error(data, "Unexpected token %s seen on line %d of '%s'.", token, ippFileGetLineNumber(f), ippFileGetFilename(f)); + return (false); } } else @@ -6063,9 +6075,9 @@ token_cb(_ipp_file_t *f, /* I - IPP file data */ print_xml_header(data); if (data->output == IPPTOOL_OUTPUT_TEST || (data->output == IPPTOOL_OUTPUT_PLIST && data->outfile != cupsFileStdout())) - cupsFilePrintf(cupsFileStdout(), "\"%s\":\n", f->filename); + cupsFilePrintf(cupsFileStdout(), "\"%s\":\n", ippFileGetFilename(f)); - data->show_header = 0; + data->show_header = false; } data->compression[0] = '\0'; @@ -6074,14 +6086,14 @@ token_cb(_ipp_file_t *f, /* I - IPP file data */ data->last_expect = NULL; data->file[0] = '\0'; data->ignore_errors = data->def_ignore_errors; - cupsCopyString(data->name, f->filename, sizeof(data->name)); + cupsCopyString(data->name, ippFileGetFilename(f), sizeof(data->name)); if ((ptr = strrchr(data->name, '.')) != NULL) *ptr = '\0'; data->repeat_interval = 5000000; cupsCopyString(data->resource, data->vars->resource, sizeof(data->resource)); - data->skip_previous = 0; - data->pass_test = 0; - data->skip_test = 0; + data->skip_previous = false; + data->pass_test = false; + data->skip_test = false; data->num_statuses = 0; data->last_status = NULL; data->test_id[0] = '\0'; @@ -6094,10 +6106,7 @@ token_cb(_ipp_file_t *f, /* I - IPP file data */ data->monitor_interval = 5000000; data->num_monitor_expects = 0; - _ippVarsSet(vars, "date-current", iso_date(ippTimeToDate(time(NULL)))); - - f->attrs = ippNew(); - f->group_tag = IPP_TAG_ZERO; + ippFileSetVar(f, "date-current", iso_date(ippTimeToDate(time(NULL)))); } else if (!strcmp(token, "DEFINE")) { @@ -6105,16 +6114,16 @@ token_cb(_ipp_file_t *f, /* I - IPP file data */ * DEFINE name value */ - if (_ippFileReadToken(f, name, sizeof(name)) && _ippFileReadToken(f, temp, sizeof(temp))) + if (ippFileReadToken(f, name, sizeof(name)) && ippFileReadToken(f, temp, sizeof(temp))) { - _ippVarsSet(vars, "date-current", iso_date(ippTimeToDate(time(NULL)))); - _ippVarsExpand(vars, value, temp, sizeof(value)); - _ippVarsSet(vars, name, value); + ippFileSetVar(f, "date-current", iso_date(ippTimeToDate(time(NULL)))); + ippFileExpandVars(f, value, temp, sizeof(value)); + ippFileSetVar(f, name, value); } else { - print_fatal_error(data, "Missing DEFINE name and/or value on line %d of \"%s\".", f->linenum, f->filename); - return (0); + print_fatal_error(data, "Missing DEFINE name and/or value on line %d of '%s'.", ippFileGetLineNumber(f), ippFileGetFilename(f)); + return (false); } } else if (!strcmp(token, "DEFINE-DEFAULT")) @@ -6123,19 +6132,19 @@ token_cb(_ipp_file_t *f, /* I - IPP file data */ * DEFINE-DEFAULT name value */ - if (_ippFileReadToken(f, name, sizeof(name)) && _ippFileReadToken(f, temp, sizeof(temp))) + if (ippFileReadToken(f, name, sizeof(name)) && ippFileReadToken(f, temp, sizeof(temp))) { if (!_ippVarsGet(vars, name)) { - _ippVarsSet(vars, "date-current", iso_date(ippTimeToDate(time(NULL)))); - _ippVarsExpand(vars, value, temp, sizeof(value)); - _ippVarsSet(vars, name, value); + ippFileSetVar(f, "date-current", iso_date(ippTimeToDate(time(NULL)))); + ippFileExpandVars(f, value, temp, sizeof(value)); + ippFileSetVar(f, name, value); } } else { - print_fatal_error(data, "Missing DEFINE-DEFAULT name and/or value on line %d of \"%s\".", f->linenum, f->filename); - return (0); + print_fatal_error(data, "Missing DEFINE-DEFAULT name and/or value on line %d of '%s'.", ippFileGetLineNumber(f), ippFileGetFilename(f)); + return (false); } } else if (!strcmp(token, "FILE-ID")) @@ -6144,15 +6153,15 @@ token_cb(_ipp_file_t *f, /* I - IPP file data */ * FILE-ID "string" */ - if (_ippFileReadToken(f, temp, sizeof(temp))) + if (ippFileReadToken(f, temp, sizeof(temp))) { - _ippVarsSet(vars, "date-current", iso_date(ippTimeToDate(time(NULL)))); - _ippVarsExpand(vars, data->file_id, temp, sizeof(data->file_id)); + ippFileSetVar(f, "date-current", iso_date(ippTimeToDate(time(NULL)))); + ippFileExpandVars(f, data->file_id, temp, sizeof(data->file_id)); } else { - print_fatal_error(data, "Missing FILE-ID value on line %d of \"%s\".", f->linenum, f->filename); - return (0); + print_fatal_error(data, "Missing FILE-ID value on line %d of '%s'.", ippFileGetLineNumber(f), ippFileGetFilename(f)); + return (false); } } else if (!strcmp(token, "IGNORE-ERRORS")) @@ -6162,14 +6171,14 @@ token_cb(_ipp_file_t *f, /* I - IPP file data */ * IGNORE-ERRORS no */ - if (_ippFileReadToken(f, temp, sizeof(temp)) && (!_cups_strcasecmp(temp, "yes") || !_cups_strcasecmp(temp, "no"))) + if (ippFileReadToken(f, temp, sizeof(temp)) && (!_cups_strcasecmp(temp, "yes") || !_cups_strcasecmp(temp, "no"))) { data->def_ignore_errors = !_cups_strcasecmp(temp, "yes"); } else { - print_fatal_error(data, "Missing IGNORE-ERRORS value on line %d of \"%s\".", f->linenum, f->filename); - return (0); + print_fatal_error(data, "Missing IGNORE-ERRORS value on line %d of '%s'.", ippFileGetLineNumber(f), ippFileGetFilename(f)); + return (false); } } else if (!strcmp(token, "INCLUDE")) @@ -6179,7 +6188,7 @@ token_cb(_ipp_file_t *f, /* I - IPP file data */ * INCLUDE */ - if (_ippFileReadToken(f, temp, sizeof(temp))) + if (ippFileReadToken(f, temp, sizeof(temp))) { /* * Map the filename to and then run the tests... @@ -6192,21 +6201,21 @@ token_cb(_ipp_file_t *f, /* I - IPP file data */ inc_data.http = NULL; inc_data.pass = 1; inc_data.prev_pass = 1; - inc_data.show_header = 1; + inc_data.show_header = true; - if (!do_tests(get_filename(f->filename, filename, temp, sizeof(filename)), &inc_data) && data->stop_after_include_error) + if (!do_tests(get_filename(ippFileGetFilename(f), filename, temp, sizeof(filename)), &inc_data) && data->stop_after_include_error) { - data->pass = data->prev_pass = 0; - return (0); + data->pass = data->prev_pass = false; + return (false); } } else { - print_fatal_error(data, "Missing INCLUDE filename on line %d of \"%s\".", f->linenum, f->filename); - return (0); + print_fatal_error(data, "Missing INCLUDE filename on line %d of '%s'.", ippFileGetLineNumber(f), ippFileGetFilename(f)); + return (false); } - data->show_header = 1; + data->show_header = true; } else if (!strcmp(token, "INCLUDE-IF-DEFINED")) { @@ -6215,7 +6224,7 @@ token_cb(_ipp_file_t *f, /* I - IPP file data */ * INCLUDE-IF-DEFINED name */ - if (_ippFileReadToken(f, name, sizeof(name)) && _ippFileReadToken(f, temp, sizeof(temp))) + if (ippFileReadToken(f, name, sizeof(name)) && ippFileReadToken(f, temp, sizeof(temp))) { /* * Map the filename to and then run the tests... @@ -6228,21 +6237,21 @@ token_cb(_ipp_file_t *f, /* I - IPP file data */ inc_data.http = NULL; inc_data.pass = 1; inc_data.prev_pass = 1; - inc_data.show_header = 1; + inc_data.show_header = true; - if (!do_tests(get_filename(f->filename, filename, temp, sizeof(filename)), &inc_data) && data->stop_after_include_error) + if (!do_tests(get_filename(ippFileGetFilename(f), filename, temp, sizeof(filename)), &inc_data) && data->stop_after_include_error) { - data->pass = data->prev_pass = 0; - return (0); + data->pass = data->prev_pass = false; + return (false); } } else { - print_fatal_error(data, "Missing INCLUDE-IF-DEFINED name or filename on line %d of \"%s\".", f->linenum, f->filename); - return (0); + print_fatal_error(data, "Missing INCLUDE-IF-DEFINED name or filename on line %d of '%s'.", ippFileGetLineNumber(f), ippFileGetFilename(f)); + return (false); } - data->show_header = 1; + data->show_header = true; } else if (!strcmp(token, "INCLUDE-IF-NOT-DEFINED")) { @@ -6251,34 +6260,34 @@ token_cb(_ipp_file_t *f, /* I - IPP file data */ * INCLUDE-IF-NOT-DEFINED name */ - if (_ippFileReadToken(f, name, sizeof(name)) && _ippFileReadToken(f, temp, sizeof(temp))) + if (ippFileReadToken(f, name, sizeof(name)) && ippFileReadToken(f, temp, sizeof(temp))) { /* * Map the filename to and then run the tests... */ - ipptool_test_t inc_data; /* Data for included file */ + ipptool_test_t inc_data; /* Data for included file */ char filename[1024]; /* Mapped filename */ memcpy(&inc_data, data, sizeof(inc_data)); inc_data.http = NULL; - inc_data.pass = 1; - inc_data.prev_pass = 1; - inc_data.show_header = 1; + inc_data.pass = true; + inc_data.prev_pass = true; + inc_data.show_header = true; - if (!do_tests(get_filename(f->filename, filename, temp, sizeof(filename)), &inc_data) && data->stop_after_include_error) + if (!do_tests(get_filename(ippFileGetFilename(f), filename, temp, sizeof(filename)), &inc_data) && data->stop_after_include_error) { - data->pass = data->prev_pass = 0; - return (0); + data->pass = data->prev_pass = false; + return (false); } } else { - print_fatal_error(data, "Missing INCLUDE-IF-NOT-DEFINED name or filename on line %d of \"%s\".", f->linenum, f->filename); - return (0); + print_fatal_error(data, "Missing INCLUDE-IF-NOT-DEFINED name or filename on line %d of '%s'.", ippFileGetLineNumber(f), ippFileGetFilename(f)); + return (false); } - data->show_header = 1; + data->show_header = true; } else if (!strcmp(token, "SKIP-IF-DEFINED")) { @@ -6286,15 +6295,15 @@ token_cb(_ipp_file_t *f, /* I - IPP file data */ * SKIP-IF-DEFINED variable */ - if (_ippFileReadToken(f, name, sizeof(name))) + if (ippFileReadToken(f, name, sizeof(name))) { if (_ippVarsGet(vars, name) || getenv(name)) data->skip_test = 1; } else { - print_fatal_error(data, "Missing SKIP-IF-DEFINED variable on line %d of \"%s\".", f->linenum, f->filename); - return (0); + print_fatal_error(data, "Missing SKIP-IF-DEFINED variable on line %d of '%s'.", ippFileGetLineNumber(f), ippFileGetFilename(f)); + return (false); } } else if (!strcmp(token, "SKIP-IF-NOT-DEFINED")) @@ -6303,15 +6312,15 @@ token_cb(_ipp_file_t *f, /* I - IPP file data */ * SKIP-IF-NOT-DEFINED variable */ - if (_ippFileReadToken(f, name, sizeof(name))) + if (ippFileReadToken(f, name, sizeof(name))) { if (!_ippVarsGet(vars, name) && !getenv(name)) data->skip_test = 1; } else { - print_fatal_error(data, "Missing SKIP-IF-NOT-DEFINED variable on line %d of \"%s\".", f->linenum, f->filename); - return (0); + print_fatal_error(data, "Missing SKIP-IF-NOT-DEFINED variable on line %d of '%s'.", ippFileGetLineNumber(f), ippFileGetFilename(f)); + return (false); } } else if (!strcmp(token, "STOP-AFTER-INCLUDE-ERROR")) @@ -6321,14 +6330,14 @@ token_cb(_ipp_file_t *f, /* I - IPP file data */ * STOP-AFTER-INCLUDE-ERROR no */ - if (_ippFileReadToken(f, temp, sizeof(temp)) && (!_cups_strcasecmp(temp, "yes") || !_cups_strcasecmp(temp, "no"))) + if (ippFileReadToken(f, temp, sizeof(temp)) && (!_cups_strcasecmp(temp, "yes") || !_cups_strcasecmp(temp, "no"))) { data->stop_after_include_error = !_cups_strcasecmp(temp, "yes"); } else { - print_fatal_error(data, "Missing STOP-AFTER-INCLUDE-ERROR value on line %d of \"%s\".", f->linenum, f->filename); - return (0); + print_fatal_error(data, "Missing STOP-AFTER-INCLUDE-ERROR value on line %d of '%s'.", ippFileGetLineNumber(f), ippFileGetFilename(f)); + return (false); } } else if (!strcmp(token, "TRANSFER")) @@ -6339,7 +6348,7 @@ token_cb(_ipp_file_t *f, /* I - IPP file data */ * TRANSFER length */ - if (_ippFileReadToken(f, temp, sizeof(temp))) + if (ippFileReadToken(f, temp, sizeof(temp))) { if (!strcmp(temp, "auto")) data->def_transfer = IPPTOOL_TRANSFER_AUTO; @@ -6349,19 +6358,19 @@ token_cb(_ipp_file_t *f, /* I - IPP file data */ data->def_transfer = IPPTOOL_TRANSFER_LENGTH; else { - print_fatal_error(data, "Bad TRANSFER value \"%s\" on line %d of \"%s\".", temp, f->linenum, f->filename); - return (0); + print_fatal_error(data, "Bad TRANSFER value \"%s\" on line %d of '%s'.", temp, ippFileGetLineNumber(f), ippFileGetFilename(f)); + return (false); } } else { - print_fatal_error(data, "Missing TRANSFER value on line %d of \"%s\".", f->linenum, f->filename); - return (0); + print_fatal_error(data, "Missing TRANSFER value on line %d of '%s'.", ippFileGetLineNumber(f), ippFileGetFilename(f)); + return (false); } } else if (!strcmp(token, "VERSION")) { - if (_ippFileReadToken(f, temp, sizeof(temp))) + if (ippFileReadToken(f, temp, sizeof(temp))) { if (!strcmp(temp, "1.0")) data->def_version = 10; @@ -6375,24 +6384,24 @@ token_cb(_ipp_file_t *f, /* I - IPP file data */ data->def_version = 22; else { - print_fatal_error(data, "Bad VERSION \"%s\" on line %d of \"%s\".", temp, f->linenum, f->filename); - return (0); + print_fatal_error(data, "Bad VERSION \"%s\" on line %d of '%s'.", temp, ippFileGetLineNumber(f), ippFileGetFilename(f)); + return (false); } } else { - print_fatal_error(data, "Missing VERSION number on line %d of \"%s\".", f->linenum, f->filename); - return (0); + print_fatal_error(data, "Missing VERSION number on line %d of '%s'.", ippFileGetLineNumber(f), ippFileGetFilename(f)); + return (false); } } else { - print_fatal_error(data, "Unexpected token %s seen on line %d of \"%s\".", token, f->linenum, f->filename); - return (0); + print_fatal_error(data, "Unexpected token %s seen on line %d of '%s'.", token, ippFileGetLineNumber(f), ippFileGetFilename(f)); + return (false); } } - return (1); + return (true); } @@ -6440,11 +6449,12 @@ usage(void) * 'with_distinct_values()' - Verify that an attribute contains unique values. */ -static int // O - 1 if distinct, 0 if duplicate +static bool // O - `true` if distinct, `false` if duplicate with_distinct_values( cups_array_t *errors, // I - Array of errors ipp_attribute_t *attr) // I - Attribute to test { + bool ret; // Return value size_t i, // Looping var count; // Number of values ipp_tag_t value_tag; // Value syntax @@ -6455,7 +6465,7 @@ with_distinct_values( // If there is only 1 value, it must be distinct if ((count = ippGetCount(attr)) == 1) - return (1); + return (true); // Only check integers, enums, rangeOfInteger, resolution, and nul-terminated // strings... @@ -6475,7 +6485,7 @@ with_distinct_values( default : add_stringf(errors, "WITH-DISTINCT-VALUES %s not supported for 1setOf %s", ippGetName(attr), ippTagString(value_tag)); - return (0); + return (false); } // Collect values and determine they are all unique... @@ -6554,10 +6564,10 @@ with_distinct_values( } // Cleanup... - i = cupsArrayGetCount(values) == count; + ret = cupsArrayGetCount(values) == count; cupsArrayDelete(values); - return (i); + return (ret); } @@ -6595,7 +6605,7 @@ with_flags_string(int flags) /* I - WITH flags */ * 'with_value()' - Test a WITH-VALUE predicate. */ -static int /* O - 1 on match, 0 on non-match */ +static bool /* O - `true` on match, `false` on non-match */ with_value(ipptool_test_t *data, /* I - Test data */ cups_array_t *errors, /* I - Errors array */ char *value, /* I - Value string */ @@ -6620,7 +6630,7 @@ with_value(ipptool_test_t *data, /* I - Test data */ */ if (!value || !*value) - return (1); + return (true); /* * Compare the value string to the attribute value. @@ -6849,7 +6859,7 @@ with_value(ipptool_test_t *data, /* I - Test data */ case IPP_TAG_NOVALUE : case IPP_TAG_UNKNOWN : - return (1); + return (true); case IPP_TAG_CHARSET : case IPP_TAG_KEYWORD : @@ -6875,7 +6885,7 @@ with_value(ipptool_test_t *data, /* I - Test data */ regerror(r, &re, temp, sizeof(temp)); print_fatal_error(data, "Unable to compile WITH-VALUE regular expression \"%s\" - %s", value, temp); - return (0); + return (false); } /* @@ -6892,13 +6902,13 @@ with_value(ipptool_test_t *data, /* I - Test data */ if (!(flags & IPPTOOL_WITH_ALL)) { - match = 1; + match = true; break; } } else if (flags & IPPTOOL_WITH_ALL) { - match = 0; + match = false; break; } } @@ -6920,13 +6930,13 @@ with_value(ipptool_test_t *data, /* I - Test data */ if (!(flags & IPPTOOL_WITH_ALL)) { - match = 1; + match = true; break; } } else if (flags & IPPTOOL_WITH_ALL) { - match = 0; + match = false; break; } } @@ -6985,13 +6995,13 @@ with_value(ipptool_test_t *data, /* I - Test data */ if (!(flags & IPPTOOL_WITH_ALL)) { - match = 1; + match = true; break; } } else if (flags & IPPTOOL_WITH_ALL) { - match = 0; + match = false; break; } } @@ -7021,7 +7031,7 @@ with_value(ipptool_test_t *data, /* I - Test data */ regerror(r, &re, temp, sizeof(temp)); print_fatal_error(data, "Unable to compile WITH-VALUE regular expression \"%s\" - %s", value, temp); - return (0); + return (false); } /* @@ -7032,7 +7042,7 @@ with_value(ipptool_test_t *data, /* I - Test data */ { if ((adata = ippGetOctetString(attr, i, &adatalen)) == NULL || adatalen >= (int)sizeof(temp)) { - match = 0; + match = false; break; } memcpy(temp, adata, (size_t)adatalen); @@ -7045,13 +7055,13 @@ with_value(ipptool_test_t *data, /* I - Test data */ if (!(flags & IPPTOOL_WITH_ALL)) { - match = 1; + match = true; break; } } else if (flags & IPPTOOL_WITH_ALL) { - match = 0; + match = false; break; } } @@ -7088,7 +7098,7 @@ with_value(ipptool_test_t *data, /* I - Test data */ if ((withlen = strlen(value)) & 1 || withlen > (2 * (sizeof(withdata) + 1))) { print_fatal_error(data, "Bad WITH-VALUE hex value."); - return (0); + return (false); } withlen = withlen / 2 - 1; @@ -7117,7 +7127,7 @@ with_value(ipptool_test_t *data, /* I - Test data */ if (*valptr) { print_fatal_error(data, "Bad WITH-VALUE hex value."); - return (0); + return (false); } } else @@ -7142,13 +7152,13 @@ with_value(ipptool_test_t *data, /* I - Test data */ if (!(flags & IPPTOOL_WITH_ALL)) { - match = 1; + match = true; break; } } else if (flags & IPPTOOL_WITH_ALL) { - match = 0; + match = false; break; } } @@ -7177,7 +7187,7 @@ with_value(ipptool_test_t *data, /* I - Test data */ * 'with_value_from()' - Test a WITH-VALUE-FROM predicate. */ -static int /* O - 1 on match, 0 on non-match */ +static bool /* O - `true` on match, `false` on non-match */ with_value_from( cups_array_t *errors, /* I - Errors array */ ipp_attribute_t *fromattr, /* I - "From" attribute */ @@ -7249,11 +7259,13 @@ with_value_from( for (i = 0; i < count; i ++) { - int xres, yres; - ipp_res_t units; - size_t fromcount = ippGetCount(fromattr); - int fromxres, fromyres; - ipp_res_t fromunits; + int xres, yres; // Current X,Y resolution + ipp_res_t units; // Current units + size_t fromcount = ippGetCount(fromattr); + // From count + int fromxres, fromyres; + // From X,Y resolution + ipp_res_t fromunits; // From units xres = ippGetResolution(attr, i, &yres, &units); @@ -7288,7 +7300,7 @@ with_value_from( case IPP_TAG_NOVALUE : case IPP_TAG_UNKNOWN : - return (1); + return (true); case IPP_TAG_CHARSET : case IPP_TAG_KEYWORD : @@ -7320,9 +7332,10 @@ with_value_from( case IPP_TAG_URI : for (i = 0; i < count; i ++) { - const char *value = ippGetString(attr, i, NULL); - /* Current string value */ - size_t fromcount = ippGetCount(fromattr); + const char *value = ippGetString(attr, i, NULL); + // Current string value + size_t fromcount = ippGetCount(fromattr); + // From count for (j = 0; j < fromcount; j ++) { @@ -7349,10 +7362,10 @@ with_value_from( return (match); - /* value tag mismatch between fromattr and attr */ + // value tag mismatch between fromattr and attr... wrong_value_tag : add_stringf(errors, "GOT: %s OF-TYPE %s", ippGetName(attr), ippTagString(ippGetValueTag(attr))); - return (0); + return (false); } From 3dc1d9f82913decdafa12f0672ce836957cdabde Mon Sep 17 00:00:00 2001 From: Michael R Sweet Date: Wed, 1 Jun 2022 21:35:41 -0400 Subject: [PATCH 05/15] Finiah first pass of new IPP file API and use it. --- cups/ipp-file.c | 139 +++++++++++++++++++++++++++++++----------- cups/ipp.c | 2 +- cups/ipp.h | 5 +- tools/ippeveprinter.c | 70 +++++++-------------- tools/ipptool.c | 82 +++++++++---------------- 5 files changed, 158 insertions(+), 140 deletions(-) diff --git a/cups/ipp-file.c b/cups/ipp-file.c index 711ab6b28..516ef6ddc 100644 --- a/cups/ipp-file.c +++ b/cups/ipp-file.c @@ -72,7 +72,6 @@ ippFileClose(ipp_file_t *file) // I - IPP data file _cupsSetError(IPP_STATUS_ERROR_INTERNAL, strerror(errno), 0); free(file->filename); - ippDelete(file->attrs); file->fp = NULL; file->filename = NULL; @@ -250,27 +249,13 @@ ippFileGetAttribute( // // 'ippFileGetAttributes()' - Get the current set of attributes from an IPP data file. // -// This function gets the current set of attributes from an IPP data file and -// clears the internal attribute pointer. The caller must call the -// @link ippDelete@ function to free the memory used by the attributes. +// This function gets the current set of attributes from an IPP data file. // ipp_t * // O - IPP attributes ippFileGetAttributes(ipp_file_t *file) // I - IPP data file { - if (file) - { - ipp_t *attrs = file->attrs; // IPP attributes - - file->attrs = NULL; - file->group_tag = IPP_TAG_ZERO; - - return (attrs); - } - else - { - return (NULL); - } + return (file ? file->attrs : NULL); } @@ -327,6 +312,20 @@ ippFileGetVar(ipp_file_t *file, // I - IPP data file } +// +// 'ippFileHaveAttributes()' - Determine whether the IPP data file has attributes. +// +// This function returns whether the IPP data file currently has attributes +// defined. +// + +bool // O - `true` if attributes are present, `false` otherwise +ippFileHaveAttributes(ipp_file_t *file) // I - IPP data file +{ + return (file ? file->attrs != NULL : false); +} + + // // 'ippFileNew()' - Create a new IPP data file object for reading or writing. // @@ -410,7 +409,8 @@ ippFileOpen(ipp_file_t *file, // I - IPP data file bool // O - `true` on success, `false` on error ippFileRead(ipp_file_t *file, // I - IPP data file - ipp_ftoken_cb_t token_cb) // I - Token callback + ipp_ftoken_cb_t token_cb, // I - Token callback + bool with_groups)// I - Read attributes with GROUP directives { ipp_t *attrs = NULL; // Active IPP message ipp_attribute_t *attr = NULL; // Current attribute @@ -448,11 +448,36 @@ ippFileRead(ipp_file_t *file, // I - IPP data file } else { - report_error(file, "Missing %s name and/or value on line %d of \"%s\".", token, file->linenum, file->filename); + report_error(file, "Missing %s name and/or value on line %d of '%s'.", token, file->linenum, file->filename); ret = false; break; } } + else if (file->attrs && with_groups && !_cups_strcasecmp(token, "GROUP")) + { + // Attribute group... + char temp[1024]; // Temporary token + ipp_tag_t group_tag; // Group tag + + if (!ippFileReadToken(file, temp, sizeof(temp))) + { + report_error(file, "Missing GROUP tag on line %d of '%s'.", file->linenum, file->filename); + ret = false; + break; + } + + if ((group_tag = ippTagValue(temp)) == IPP_TAG_ZERO || group_tag >= IPP_TAG_UNSUPPORTED_VALUE) + { + report_error(file, "Bad GROUP tag '%s' on line %d of '%s'.", temp, file->linenum, file->filename); + ret = false; + break; + } + + if (group_tag == file->group_tag) + ippAddSeparator(file->attrs); + + file->group_tag = group_tag; + } else if (file->attrs && !_cups_strcasecmp(token, "ATTR")) { // Attribute definition... @@ -464,20 +489,20 @@ ippFileRead(ipp_file_t *file, // I - IPP data file if (!ippFileReadToken(file, syntax, sizeof(syntax))) { - report_error(file, "Missing ATTR syntax on line %d of \"%s\".", file->linenum, file->filename); + report_error(file, "Missing ATTR syntax on line %d of '%s'.", file->linenum, file->filename); ret = false; break; } else if ((value_tag = ippTagValue(syntax)) < IPP_TAG_UNSUPPORTED_VALUE) { - report_error(file, "Bad ATTR syntax \"%s\" on line %d of \"%s\".", syntax, file->linenum, file->filename); + report_error(file, "Bad ATTR syntax \"%s\" on line %d of '%s'.", syntax, file->linenum, file->filename); ret = false; break; } if (!ippFileReadToken(file, name, sizeof(name)) || !name[0]) { - report_error(file, "Missing ATTR name on line %d of \"%s\".", file->linenum, file->filename); + report_error(file, "Missing ATTR name on line %d of '%s'.", file->linenum, file->filename); ret = false; break; } @@ -780,6 +805,48 @@ ippFileSavePosition(ipp_file_t *file) // I - IPP data file } +// +// 'ippFileSetAttributes()' - Set the attributes for an IPP data file. +// +// This function sets the current set of attributes for an IPP data file, +// typically an empty collection created with @link ippNew@. +// + +bool // O - `true` on success, `false` otherwise +ippFileSetAttributes(ipp_file_t *file, // I - IPP data file + ipp_t *attrs) // I - IPP attributes +{ + if (file) + { + file->attrs = attrs; + return (true); + } + + return (false); +} + + +// +// 'ippFileSetGroupTag()' - Set the group tag for an IPP data file. +// +// This function sets the group tag associated with attributes that are read +// from an IPP data file. +// + +bool // O - `true` on success, `false` otherwise +ippFileSetGroupTag(ipp_file_t *file, // I - IPP data file + ipp_tag_t group_tag)// I - Group tag +{ + if (file && group_tag >= IPP_TAG_OPERATION && group_tag <= IPP_TAG_SYSTEM) + { + file->group_tag = group_tag; + return (true); + } + + return (false); +} + + // // 'ippFileSetVar()' - Set an IPP data file variable to a constant value. // @@ -1327,14 +1394,14 @@ parse_collection(ipp_file_t *file) // I - IPP data file if (!ippFileReadToken(file, syntax, sizeof(syntax))) { - report_error(file, "Missing MEMBER syntax on line %d of \"%s\".", file->linenum, file->filename); + report_error(file, "Missing MEMBER syntax on line %d of '%s'.", file->linenum, file->filename); ippDelete(col); col = NULL; break; } else if ((value_tag = ippTagValue(syntax)) < IPP_TAG_UNSUPPORTED_VALUE) { - report_error(file, "Bad MEMBER syntax \"%s\" on line %d of \"%s\".", syntax, file->linenum, file->filename); + report_error(file, "Bad MEMBER syntax \"%s\" on line %d of '%s'.", syntax, file->linenum, file->filename); ippDelete(col); col = NULL; break; @@ -1342,7 +1409,7 @@ parse_collection(ipp_file_t *file) // I - IPP data file if (!ippFileReadToken(file, name, sizeof(name)) || !name[0]) { - report_error(file, "Missing MEMBER name on line %d of \"%s\".", file->linenum, file->filename); + report_error(file, "Missing MEMBER name on line %d of '%s'.", file->linenum, file->filename); ippDelete(col); col = NULL; break; @@ -1380,7 +1447,7 @@ parse_collection(ipp_file_t *file) // I - IPP data file else { // Something else... - report_error(file, "Unknown directive \"%s\" on line %d of \"%s\".", token, file->linenum, file->filename); + report_error(file, "Unknown directive \"%s\" on line %d of '%s'.", token, file->linenum, file->filename); ippDelete(col); col = NULL; attr = NULL; @@ -1412,7 +1479,7 @@ parse_value(ipp_file_t *file, // I - IPP data file if (!ippFileReadToken(file, temp, sizeof(temp))) { - report_error(file, "Missing value on line %d of \"%s\".", file->linenum, file->filename); + report_error(file, "Missing value on line %d of '%s'.", file->linenum, file->filename); return (false); } @@ -1455,7 +1522,7 @@ parse_value(ipp_file_t *file, // I - IPP data file if (!valueptr || period < 0) { - report_error(file, "Bad dateTime value \"%s\" on line %d of \"%s\".", value, file->linenum, file->filename); + report_error(file, "Bad dateTime value \"%s\" on line %d of '%s'.", value, file->linenum, file->filename); return (false); } } @@ -1496,7 +1563,7 @@ parse_value(ipp_file_t *file, // I - IPP data file } else { - report_error(file, "Bad dateTime value \"%s\" on line %d of \"%s\".", value, file->linenum, file->filename); + report_error(file, "Bad dateTime value \"%s\" on line %d of '%s'.", value, file->linenum, file->filename); return (false); } } @@ -1506,7 +1573,7 @@ parse_value(ipp_file_t *file, // I - IPP data file else if (sscanf(value, "%d-%d-%dT%d:%d:%d%d", &year, &month, &day, &hour, &minute, &second, &utc_offset) < 6) { // Date/time value did not parse... - report_error(file, "Bad dateTime value \"%s\" on line %d of \"%s\".", value, file->linenum, file->filename); + report_error(file, "Bad dateTime value \"%s\" on line %d of '%s'.", value, file->linenum, file->filename); return (false); } @@ -1549,7 +1616,7 @@ parse_value(ipp_file_t *file, // I - IPP data file if (ptr <= value || xres <= 0 || yres <= 0 || !ptr || (_cups_strcasecmp(ptr, "dpi") && _cups_strcasecmp(ptr, "dpc") && _cups_strcasecmp(ptr, "dpcm") && _cups_strcasecmp(ptr, "other"))) { - report_error(file, "Bad resolution value \"%s\" on line %d of \"%s\".", value, file->linenum, file->filename); + report_error(file, "Bad resolution value \"%s\" on line %d of '%s'.", value, file->linenum, file->filename); return (false); } @@ -1568,7 +1635,7 @@ parse_value(ipp_file_t *file, // I - IPP data file if (sscanf(value, "%d-%d", &lower, &upper) != 2) { - report_error(file, "Bad rangeOfInteger value \"%s\" on line %d of \"%s\".", value, file->linenum, file->filename); + report_error(file, "Bad rangeOfInteger value \"%s\" on line %d of '%s'.", value, file->linenum, file->filename); return (false); } @@ -1582,7 +1649,7 @@ parse_value(ipp_file_t *file, // I - IPP data file { if (valuelen & 1) { - report_error(file, "Bad octetString value on line %d of \"%s\".", file->linenum, file->filename); + report_error(file, "Bad octetString value on line %d of '%s'.", file->linenum, file->filename); return (false); } @@ -1593,7 +1660,7 @@ parse_value(ipp_file_t *file, // I - IPP data file { if (!isxdigit(valueptr[0] & 255) || !isxdigit(valueptr[1] & 255)) { - report_error(file, "Bad octetString value on line %d of \"%s\".", file->linenum, file->filename); + report_error(file, "Bad octetString value on line %d of '%s'.", file->linenum, file->filename); return (false); } @@ -1634,7 +1701,7 @@ parse_value(ipp_file_t *file, // I - IPP data file if (strcmp(value, "{")) { - report_error(file, "Bad collection value on line %d of \"%s\".", file->linenum, file->filename); + report_error(file, "Bad collection value on line %d of '%s'.", file->linenum, file->filename); return (false); } @@ -1648,7 +1715,7 @@ parse_value(ipp_file_t *file, // I - IPP data file } default : - report_error(file, "Unsupported value on line %d of \"%s\".", file->linenum, file->filename); + report_error(file, "Unsupported value on line %d of '%s'.", file->linenum, file->filename); return (false); } } diff --git a/cups/ipp.c b/cups/ipp.c index f6f6a4bec..a788ffb7c 100644 --- a/cups/ipp.c +++ b/cups/ipp.c @@ -1714,7 +1714,7 @@ ippDelete(ipp_t *ipp) /* I - IPP message */ ipp->use --; if (ipp->use > 0) { - DEBUG_printf(("4debug_retain: %p IPP message (use=%d)", (void *)ipp, ipp->use)); + DEBUG_printf(("4debug_retain: %p IPP message (use=%u)", (void *)ipp, (unsigned)ipp->use)); return; } diff --git a/cups/ipp.h b/cups/ipp.h index 5cc18da06..5d13c9a3b 100644 --- a/cups/ipp.h +++ b/cups/ipp.h @@ -579,12 +579,15 @@ extern ipp_t *ippFileGetAttributes(ipp_file_t *file) _CUPS_PUBLIC; extern const char *ippFileGetFilename(ipp_file_t *file) _CUPS_PUBLIC; extern int ippFileGetLineNumber(ipp_file_t *file) _CUPS_PUBLIC; extern const char *ippFileGetVar(ipp_file_t *file, const char *name) _CUPS_PUBLIC; +extern bool ippFileHaveAttributes(ipp_file_t *file) _CUPS_PUBLIC; extern ipp_file_t *ippFileNew(ipp_file_t *parent, ipp_fattr_cb_t attr_cb, ipp_ferror_cb_t error_cb, void *cb_data) _CUPS_PUBLIC; extern bool ippFileOpen(ipp_file_t *file, const char *filename, const char *mode) _CUPS_PUBLIC; -extern bool ippFileRead(ipp_file_t *file, ipp_ftoken_cb_t token_cb) _CUPS_PUBLIC; +extern bool ippFileRead(ipp_file_t *file, ipp_ftoken_cb_t token_cb, bool with_groups) _CUPS_PUBLIC; extern bool ippFileReadToken(ipp_file_t *file, char *token, size_t tokensize) _CUPS_PUBLIC; extern bool ippFileRestorePosition(ipp_file_t *file) _CUPS_PUBLIC; extern bool ippFileSavePosition(ipp_file_t *file) _CUPS_PUBLIC; +extern bool ippFileSetAttributes(ipp_file_t *file, ipp_t *attrs) _CUPS_PUBLIC; +extern bool ippFileSetGroupTag(ipp_file_t *file, ipp_tag_t group_tag) _CUPS_PUBLIC; extern bool ippFileSetVar(ipp_file_t *file, const char *name, const char *value) _CUPS_PUBLIC; extern bool ippFileSetVarf(ipp_file_t *file, const char *name, const char *value, ...) _CUPS_FORMAT(3,4) _CUPS_PUBLIC; extern bool ippFileWriteAttributes(ipp_file_t *file, ipp_t *ipp, bool with_groups) _CUPS_PUBLIC; diff --git a/tools/ippeveprinter.c b/tools/ippeveprinter.c index b55441b3a..6b19bc92b 100644 --- a/tools/ippeveprinter.c +++ b/tools/ippeveprinter.c @@ -4041,11 +4041,11 @@ ipp_validate_job(ippeve_client_t *client) /* I - Client */ * 'ippserver_attr_cb()' - Determine whether an attribute should be loaded. */ -static int /* O - 1 to use, 0 to ignore */ +static bool /* O - `true` to use, `false` to ignore */ ippserver_attr_cb( - _ipp_file_t *f, /* I - IPP file */ - void *user_data, /* I - User data pointer (unused) */ - const char *attr) /* I - Attribute name */ + ipp_file_t *f, /* I - IPP file */ + void *user_data, /* I - User data pointer (unused) */ + const char *attr) /* I - Attribute name */ { int i, /* Current element */ result; /* Result of comparison */ @@ -4143,51 +4143,18 @@ ippserver_attr_cb( * 'ippserver_error_cb()' - Log an error message. */ -static int /* O - 1 to continue, 0 to stop */ +static bool /* O - `true` to continue, `false` to stop */ ippserver_error_cb( - _ipp_file_t *f, /* I - IPP file data */ - void *user_data, /* I - User data pointer (unused) */ - const char *error) /* I - Error message */ + ipp_file_t *f, /* I - IPP file data */ + void *user_data, /* I - User data pointer (unused) */ + const char *error) /* I - Error message */ { (void)f; (void)user_data; _cupsLangPrintf(stderr, "%s\n", error); - return (1); -} - - -/* - * 'ippserver_token_cb()' - Process ippserver-specific config file tokens. - */ - -static int /* O - 1 to continue, 0 to stop */ -ippserver_token_cb( - _ipp_file_t *f, /* I - IPP file data */ - _ipp_vars_t *vars, /* I - IPP variables */ - void *user_data, /* I - User data pointer (unused) */ - const char *token) /* I - Current token */ -{ - (void)vars; - (void)user_data; - - if (!token) - { - /* - * NULL token means do the initial setup - create an empty IPP message and - * return... - */ - - f->attrs = ippNew(); - f->group_tag = IPP_TAG_PRINTER; - } - else - { - _cupsLangPrintf(stderr, _("Unknown directive \"%s\" on line %d of \"%s\" ignored."), token, f->linenum, f->filename); - } - - return (1); + return (false); } @@ -4202,8 +4169,8 @@ load_ippserver_attributes( const char *filename, /* I - ippserver attribute filename */ cups_array_t *docformats) /* I - document-format-supported values */ { + ipp_file_t *file; // IPP data file ipp_t *attrs; /* IPP attributes */ - _ipp_vars_t vars; /* IPP variables */ char temp[256]; /* Temporary string */ @@ -4218,32 +4185,37 @@ load_ippserver_attributes( * - SERVERPORT: The default port of the server. */ - _ippVarsInit(&vars, (_ipp_fattr_cb_t)ippserver_attr_cb, (_ipp_ferror_cb_t)ippserver_error_cb, (_ipp_ftoken_cb_t)ippserver_token_cb); + attrs = ippNew(); + file = ippFileNew(NULL, (ipp_fattr_cb_t)ippserver_attr_cb, (ipp_ferror_cb_t)ippserver_error_cb, NULL); + + ippFileSetAttributes(file, attrs); + ippFileSetGroupTag(file, IPP_TAG_PRINTER); if (servername) { - _ippVarsSet(&vars, "SERVERNAME", servername); + ippFileSetVar(file, "SERVERNAME", servername); } else { httpGetHostname(NULL, temp, sizeof(temp)); - _ippVarsSet(&vars, "SERVERNAME", temp); + ippFileSetVar(file, "SERVERNAME", temp); } snprintf(temp, sizeof(temp), "%d", serverport); - _ippVarsSet(&vars, "SERVERPORT", temp); + ippFileSetVar(file, "SERVERPORT", temp); /* * Load attributes and values for the printer... */ - attrs = _ippFileParse(&vars, filename, NULL); + ippFileOpen(file, filename, "r"); + ippFileRead(file, NULL, false); /* * Free memory and return... */ - _ippVarsDeinit(&vars); + ippFileDelete(file); return (attrs); } diff --git a/tools/ipptool.c b/tools/ipptool.c index 0da949577..4ae6c3694 100644 --- a/tools/ipptool.c +++ b/tools/ipptool.c @@ -157,6 +157,7 @@ typedef struct ipptool_test_s /**** Test Data ****/ skip_count; /* Number of tests that were skipped */ /* Per-Test State */ + ipp_op_t op; // Operation code cups_array_t *errors; /* Errors array */ bool prev_pass, /* Result of previous test */ skip_previous; /* Skip on previous test failure? */ @@ -1264,6 +1265,7 @@ do_test(ipp_file_t *f, /* I - IPP data file */ */ request = ippFileGetAttributes(f); + ippFileSetAttributes(f, NULL); /* * Submit the IPP request... @@ -1271,6 +1273,7 @@ do_test(ipp_file_t *f, /* I - IPP data file */ data->test_count ++; + ippSetOperation(request, data->op); ippSetVersion(request, data->version / 10, data->version % 10); ippSetRequestId(request, data->request_id); @@ -2288,7 +2291,7 @@ do_tests(const char *testfile, // I - Test file to use return (false); } - ippFileRead(file, (ipp_ftoken_cb_t)token_cb); + ippFileRead(file, (ipp_ftoken_cb_t)token_cb, true); ippFileDelete(file); @@ -5010,7 +5013,7 @@ token_cb(ipp_file_t *f, /* I - IPP file data */ if (getenv("IPPTOOL_DEBUG")) fprintf(stderr, "ipptool: token='%s'\n", token); - if (f->attrs) + if (ippFileHaveAttributes(f)) { /* * Parse until we see a close brace... @@ -5208,7 +5211,7 @@ token_cb(ipp_file_t *f, /* I - IPP file data */ if (ippFileReadToken(f, name, sizeof(name))) { - if (_ippVarsGet(vars, name)) + if (ippFileGetVar(f, name)) data->pass_test = 1; } else @@ -5225,7 +5228,7 @@ token_cb(ipp_file_t *f, /* I - IPP file data */ if (ippFileReadToken(f, name, sizeof(name))) { - if (!_ippVarsGet(vars, name)) + if (!ippFileGetVar(f, name)) data->pass_test = 1; } else @@ -5242,8 +5245,8 @@ token_cb(ipp_file_t *f, /* I - IPP file data */ if (ippFileReadToken(f, name, sizeof(name))) { - if (_ippVarsGet(vars, name) || getenv(name)) - data->skip_test = 1; + if (ippFileGetVar(f, name) || getenv(name)) + data->skip_test = true; } else { @@ -5265,7 +5268,7 @@ token_cb(ipp_file_t *f, /* I - IPP file data */ get_filename(ippFileGetFilename(f), filename, temp, sizeof(filename)); if (access(filename, R_OK)) - data->skip_test = 1; + data->skip_test = true; } else { @@ -5281,8 +5284,8 @@ token_cb(ipp_file_t *f, /* I - IPP file data */ if (ippFileReadToken(f, name, sizeof(name))) { - if (!_ippVarsGet(vars, name) && !getenv(name)) - data->skip_test = 1; + if (!ippFileGetVar(f, name) && !getenv(name)) + data->skip_test = true; } else { @@ -5431,32 +5434,7 @@ token_cb(ipp_file_t *f, /* I - IPP file data */ return (false); } - ippSetOperation(f->attrs, op); - } - else if (!_cups_strcasecmp(token, "GROUP")) - { - /* - * Attribute group... - */ - - ipp_tag_t group_tag; /* Group tag */ - - if (!ippFileReadToken(f, temp, sizeof(temp))) - { - print_fatal_error(data, "Missing GROUP tag on line %d of '%s'.", ippFileGetLineNumber(f), ippFileGetFilename(f)); - return (false); - } - - if ((group_tag = ippTagValue(temp)) == IPP_TAG_ZERO || group_tag >= IPP_TAG_UNSUPPORTED_VALUE) - { - print_fatal_error(data, "Bad GROUP tag \"%s\" on line %d of '%s'.", temp, ippFileGetLineNumber(f), ippFileGetFilename(f)); - return (false); - } - - if (group_tag == f->group_tag) - ippAddSeparator(f->attrs); - - f->group_tag = group_tag; + data->op = op; } else if (!_cups_strcasecmp(token, "DELAY")) { @@ -5893,9 +5871,6 @@ token_cb(ipp_file_t *f, /* I - IPP file data */ !_cups_strcasecmp(token, "WITH-SCHEME") || !_cups_strcasecmp(token, "WITH-VALUE")) { - off_t lastpos; /* Last file position */ - int lastline; /* Last line number */ - if (data->last_expect) { if (!_cups_strcasecmp(token, "WITH-ALL-HOSTNAMES") || !_cups_strcasecmp(token, "WITH-HOSTNAME")) @@ -5924,9 +5899,9 @@ token_cb(ipp_file_t *f, /* I - IPP file data */ for (;;) { - lastpos = cupsFileTell(f->fp); - lastline = ippFileGetLineNumber(f); - ptr += strlen(ptr); + ippFileSavePosition(f); + + ptr += strlen(ptr); if (!ippFileReadToken(f, ptr, (sizeof(temp) - (size_t)(ptr - temp)))) break; @@ -5948,8 +5923,8 @@ token_cb(ipp_file_t *f, /* I - IPP file data */ * Not another value, stop here... */ - cupsFileSeek(f->fp, lastpos); - ippFileGetLineNumber(f) = lastline; + ippFileRestorePosition(f); + *ptr = '\0'; break; } @@ -6090,7 +6065,7 @@ token_cb(ipp_file_t *f, /* I - IPP file data */ if ((ptr = strrchr(data->name, '.')) != NULL) *ptr = '\0'; data->repeat_interval = 5000000; - cupsCopyString(data->resource, data->vars->resource, sizeof(data->resource)); + cupsCopyString(data->resource, ippFileGetVar(data->parent, "resource"), sizeof(data->resource)); data->skip_previous = false; data->pass_test = false; data->skip_test = false; @@ -6106,6 +6081,7 @@ token_cb(ipp_file_t *f, /* I - IPP file data */ data->monitor_interval = 5000000; data->num_monitor_expects = 0; + ippFileSetAttributes(f, ippNew()); ippFileSetVar(f, "date-current", iso_date(ippTimeToDate(time(NULL)))); } else if (!strcmp(token, "DEFINE")) @@ -6134,7 +6110,7 @@ token_cb(ipp_file_t *f, /* I - IPP file data */ if (ippFileReadToken(f, name, sizeof(name)) && ippFileReadToken(f, temp, sizeof(temp))) { - if (!_ippVarsGet(vars, name)) + if (!ippFileGetVar(f, name)) { ippFileSetVar(f, "date-current", iso_date(ippTimeToDate(time(NULL)))); ippFileExpandVars(f, value, temp, sizeof(value)); @@ -6199,8 +6175,8 @@ token_cb(ipp_file_t *f, /* I - IPP file data */ memcpy(&inc_data, data, sizeof(inc_data)); inc_data.http = NULL; - inc_data.pass = 1; - inc_data.prev_pass = 1; + inc_data.pass = true; + inc_data.prev_pass = true; inc_data.show_header = true; if (!do_tests(get_filename(ippFileGetFilename(f), filename, temp, sizeof(filename)), &inc_data) && data->stop_after_include_error) @@ -6235,8 +6211,8 @@ token_cb(ipp_file_t *f, /* I - IPP file data */ memcpy(&inc_data, data, sizeof(inc_data)); inc_data.http = NULL; - inc_data.pass = 1; - inc_data.prev_pass = 1; + inc_data.pass = true; + inc_data.prev_pass = true; inc_data.show_header = true; if (!do_tests(get_filename(ippFileGetFilename(f), filename, temp, sizeof(filename)), &inc_data) && data->stop_after_include_error) @@ -6297,8 +6273,8 @@ token_cb(ipp_file_t *f, /* I - IPP file data */ if (ippFileReadToken(f, name, sizeof(name))) { - if (_ippVarsGet(vars, name) || getenv(name)) - data->skip_test = 1; + if (ippFileGetVar(f, name) || getenv(name)) + data->skip_test = true; } else { @@ -6314,8 +6290,8 @@ token_cb(ipp_file_t *f, /* I - IPP file data */ if (ippFileReadToken(f, name, sizeof(name))) { - if (!_ippVarsGet(vars, name) && !getenv(name)) - data->skip_test = 1; + if (!ippFileGetVar(f, name) && !getenv(name)) + data->skip_test = true; } else { From b105bbb3bb6604a16d0cf6e8d684193f9ce637c8 Mon Sep 17 00:00:00 2001 From: Michael R Sweet Date: Wed, 1 Jun 2022 23:09:31 -0400 Subject: [PATCH 06/15] Update unit test program. --- cups/testipp.c | 39 ++++++++++++++++++--------------------- 1 file changed, 18 insertions(+), 21 deletions(-) diff --git a/cups/testipp.c b/cups/testipp.c index 933943f68..70d480b7a 100644 --- a/cups/testipp.c +++ b/cups/testipp.c @@ -1,7 +1,7 @@ /* * IPP unit test program for libcups. * - * Copyright © 2021 by OpenPrinting. + * Copyright © 2021-2022 by OpenPrinting. * Copyright © 2007-2019 by Apple Inc. * Copyright © 1997-2005 by Easy Software Products. * @@ -291,7 +291,7 @@ static ipp_uchar_t mixed[] = /* Mixed value buffer */ void print_attributes(ipp_t *ipp, int indent); ssize_t read_cb(_ippdata_t *data, ipp_uchar_t *buffer, size_t bytes); ssize_t read_hex(cups_file_t *fp, ipp_uchar_t *buffer, size_t bytes); -int token_cb(_ipp_file_t *f, _ipp_vars_t *v, void *user_data, const char *token); +bool token_cb(ipp_file_t *f, void *user_data, const char *token); ssize_t write_cb(_ippdata_t *data, ipp_uchar_t *buffer, size_t bytes); @@ -799,11 +799,14 @@ main(int argc, /* I - Number of command-line arguments */ * Read an ASCII IPP message... */ - _ipp_vars_t v; /* IPP variables */ + ipp_file_t *file; // IPP data file - _ippVarsInit(&v, NULL, NULL, token_cb); - request = _ippFileParse(&v, argv[i], NULL); - _ippVarsDeinit(&v); + file = ippFileNew(NULL, NULL, NULL, NULL); + request = ippNew(); + + ippFileOpen(file, argv[i], "r"); + ippFileRead(file, token_cb, true); + ippFileDelete(file); } else if (strlen(argv[i]) > 4 && !strcmp(argv[i] + strlen(argv[i]) - 4, ".hex")) { @@ -986,27 +989,21 @@ read_hex(cups_file_t *fp, /* I - File to read from */ * 'token_cb()' - Token callback for ASCII IPP data file parser. */ -int /* O - 1 on success, 0 on failure */ -token_cb(_ipp_file_t *f, /* I - IPP file data */ - _ipp_vars_t *v, /* I - IPP variables */ - void *user_data, /* I - User data pointer */ - const char *token) /* I - Token string */ +bool /* O - `true` on success, `false` on failure */ +token_cb(ipp_file_t *f, /* I - IPP file data */ + void *user_data, /* I - User data pointer */ + const char *token) /* I - Token string */ { - (void)v; (void)user_data; - if (!token) - { - f->attrs = ippNew(); - f->group_tag = IPP_TAG_PRINTER; - } - else + // TODO: Add a custom directive to test this. + if (strcasecmp(token, "TEST")) { - fprintf(stderr, "Unknown directive \"%s\" on line %d of \"%s\".\n", token, f->linenum, f->filename); - return (0); + fprintf(stderr, "Unknown directive '%s' on line %d of '%s'.\n", token, ippFileGetLineNumber(f), ippFileGetFilename(f)); + return (false); } - return (1); + return (true); } From 62559b7ebe292ae397ca5716cf947ac48371041e Mon Sep 17 00:00:00 2001 From: Michael R Sweet Date: Thu, 2 Jun 2022 09:53:52 -0400 Subject: [PATCH 07/15] Add integration test of ippeveprinter, ippfind, and ipptool. --- tools/Makefile | 5 +- tools/run-tests.sh | 26 ++++++++ tools/test.conf | 154 +++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 183 insertions(+), 2 deletions(-) create mode 100755 tools/run-tests.sh create mode 100644 tools/test.conf diff --git a/tools/Makefile b/tools/Makefile index 4740334a7..ca9984d71 100644 --- a/tools/Makefile +++ b/tools/Makefile @@ -117,14 +117,15 @@ uninstall: # Local programs (not built when cross-compiling...) # -local: ippeveprinter-static ipptool-static +local: ippeveprinter-static ippfind-static ipptool-static # # Test everything... # -test: all +test: local + ./run-tests.sh # diff --git a/tools/run-tests.sh b/tools/run-tests.sh new file mode 100755 index 000000000..27a3f8204 --- /dev/null +++ b/tools/run-tests.sh @@ -0,0 +1,26 @@ +#!/bin/sh +# +# Script to test ippfind, ipptool, and ippeveprinter end-to-end. +# +# Copyright © 2022 by Open Printing. +# +# Licensed under Apache License v2.0. See the file "LICENSE" for more +# information. +# + +# Run ippeveprinter to provide an endpoint for testing... +name="Test Printer $(date +%H%M%S)" +status=0 + +echo "Running ippeveprinter..." +./ippeveprinter-static -vvv -a test.conf "$name" 2>test.log & +ippeveprinter=$! + +# Test the instance... +echo "Running ippfind + ipptool..." +./ippfind-static -T 5 --literal-name "$name" --exec ./ipptool-static -tI '{}' ../examples/ipp-2.0.test \; || status=1 + +# Clean up +kill $ippeveprinter + +exit $status diff --git a/tools/test.conf b/tools/test.conf new file mode 100644 index 000000000..6224b07aa --- /dev/null +++ b/tools/test.conf @@ -0,0 +1,154 @@ +# +# Test printer configuration file. +# +# Copyright © 2022 by OpenPrinting. +# +# Licensed under Apache License v2.0. See the file "LICENSE" for more +# information. +# + +ATTR boolean color-supported true + +ATTR integer copies-default 1 +ATTR rangeOfInteger copies-supported 1-999 + +ATTR mimeMediaType document-format-default application/octet-stream +ATTR mimeMediaType document-format-supported application/pdf,image/jpeg,image/pwg-raster,image/urf,application/octet-stream + +ATTR no-value finishings-col-default +ATTR collection finishings-col-database { + MEMBER keyword finishing-template none +},{ + MEMBER keyword finishing-template punch +},{ + MEMBER keyword finishing-template punch-dual-top +},{ + MEMBER keyword finishing-template punch-triple-left +},{ + MEMBER keyword finishing-template staple +},{ + MEMBER keyword finishing-template staple-top-left +},{ + MEMBER keyword finishing-template staple-top-right +} +ATTR collection finishings-col-ready { + MEMBER keyword finishing-template none +},{ + MEMBER keyword finishing-template punch +},{ + MEMBER keyword finishing-template punch-dual-top +},{ + MEMBER keyword finishing-template punch-triple-left +},{ + MEMBER keyword finishing-template staple +},{ + MEMBER keyword finishing-template staple-top-left +},{ + MEMBER keyword finishing-template staple-top-right +} +ATTR keyword finishings-col-supported finishing-template +ATTR enum finishings-default 3 +ATTR enum finishings-supported 3,4,5,20,22,75,78 +ATTR keyword finishing-template-supported none,punch,punch-dual-top,punch-triple-left,staple,staple-top-left,staple-top-right + +ATTR integer max-page-ranges-supported 1 + +ATTR integer media-bottom-margin-supported 0,423 +ATTR collection media-col-database { + MEMBER collection media-size { + MEMBER integer x-dimension 21590 + MEMBER integer y-dimension 27940 + } +},{ + MEMBER collection media-size { + MEMBER integer x-dimension 21000 + MEMBER integer y-dimension 29700 + } +},{ + MEMBER collection media-size { + MEMBER rangeOfInteger x-dimension 7620-21590 + MEMBER rangeOfInteger y-dimension 12700-29700 + } + MEMBER keyword media-source manual +},{ + MEMBER collection media-size { + MEMBER rangeOfInteger x-dimension 7620-21590 + MEMBER rangeOfInteger y-dimension 12700-29700 + } + MEMBER keyword media-source by-pass-tray +} +ATTR collection media-col-default { + MEMBER integer media-bottom-margin 423 + MEMBER integer media-left-margin 423 + MEMBER integer media-right-margin 423 + MEMBER collection media-size { + MEMBER integer x-dimension 21590 + MEMBER integer y-dimension 27940 + } + MEMBER keyword media-source main + MEMBER integer media-top-margin 423 + MEMBER keyword media-type stationery +} +ATTR collection media-col-ready { + MEMBER integer media-bottom-margin 423 + MEMBER integer media-left-margin 423 + MEMBER integer media-right-margin 423 + MEMBER collection media-size { + MEMBER integer x-dimension 21590 + MEMBER integer y-dimension 27940 + } + MEMBER keyword media-source main + MEMBER integer media-top-margin 423 + MEMBER keyword media-type stationery +},{ + MEMBER integer media-bottom-margin 423 + MEMBER integer media-left-margin 423 + MEMBER integer media-right-margin 423 + MEMBER collection media-size { + MEMBER integer x-dimension 21000 + MEMBER integer y-dimension 29700 + } + MEMBER keyword media-source alternate + MEMBER integer media-top-margin 423 + MEMBER keyword media-type stationery +} +ATTR keyword media-col-supported media-bottom-margin,media-left-margin,media-right-margin,media-size,media-size-name,media-source,media-top-margin,media-type +ATTR keyword media-default na_letter_8.5x11in +ATTR integer media-left-margin-supported 0,423 +ATTR keyword media-ready na_letter_8.5x11in,iso_a4_210x297mm +ATTR integer media-right-margin-supported 0,423 +ATTR collection media-size-supported { + MEMBER integer x-dimension 21590 + MEMBER integer y-dimension 27940 +},{ + MEMBER integer x-dimension 21000 + MEMBER integer y-dimension 29700 +},{ + MEMBER rangeOfInteger x-dimension 7620-21590 + MEMBER rangeOfInteger y-dimension 12700-29700 +} +ATTR keyword media-source-supported main,alternate,manual,by-pass-tray +ATTR keyword media-supported na_letter_8.5x11in,na_legal_8.5x14in,iso_a4_210x297mm,custom_min_3x5in,custom_max_8.5x14in +ATTR integer media-top-margin-supported 0,423 +ATTR keyword media-type-supported stationery,stationery-letterhead + +ATTR keyword overrides-supported document-numbers,media,media-col,pages + +ATTR boolean page-ranges-supported true + +ATTR keyword print-color-mode-default auto +ATTR keyword print-color-mode-supported auto,color,monochrome + +ATTR keyword print-content-optimize-default auto +ATTR keyword print-content-optimize-supported auto,graphic,photo,text,text-and-graphic + +ATTR enum print-quality-default 4 +ATTR enum print-quality-supported 3,4,5 + +ATTR text printer-make-and-model "Test Printer" + +ATTR resolution printer-resolution-default 600dpi +ATTR resolution printer-resolution-supported 300dpi,600dpi,1200x600dpi + +ATTR keyword sides-default one-sided +ATTR keyword sides-supported one-sided,two-sided-long-edge,two-sided-short-edge From d294b7438773828288f62d3f6ffa3f68f709d415 Mon Sep 17 00:00:00 2001 From: Michael R Sweet Date: Thu, 2 Jun 2022 10:06:02 -0400 Subject: [PATCH 08/15] Fix some bugs in the new implementation. --- tools/ipptool.c | 4 +--- tools/run-tests.sh | 2 +- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/tools/ipptool.c b/tools/ipptool.c index 4ae6c3694..ed332b4db 100644 --- a/tools/ipptool.c +++ b/tools/ipptool.c @@ -194,8 +194,7 @@ typedef struct ipptool_test_s /**** Test Data ****/ ipptool_expect_t monitor_expects[MAX_MONITOR]; /* MONITOR-PRINTER-STATE EXPECTs */ ipptool_generate_t *generate_params; /* GENERATE-FILE parameters */ - char *buffer; // Output buffer - size_t alloc_buffer; // Size of output buffer + char buffer[1024*1024]; /* Output buffer */ } ipptool_test_t; @@ -2519,7 +2518,6 @@ static void free_data(ipptool_test_t *data) // I - Test data { ippFileDelete(data->parent); - free(data->buffer); free(data); } diff --git a/tools/run-tests.sh b/tools/run-tests.sh index 27a3f8204..8070b3520 100755 --- a/tools/run-tests.sh +++ b/tools/run-tests.sh @@ -18,7 +18,7 @@ ippeveprinter=$! # Test the instance... echo "Running ippfind + ipptool..." -./ippfind-static -T 5 --literal-name "$name" --exec ./ipptool-static -tI '{}' ../examples/ipp-2.0.test \; || status=1 +./ippfind-static -T 5 --literal-name "$name" --exec ./ipptool-static -tIf ../examples/document-letter.pdf '{}' ../examples/ipp-2.0.test \; || status=1 # Clean up kill $ippeveprinter From aa8a52fd13371e3b708fb2bcba44fff3041bf224 Mon Sep 17 00:00:00 2001 From: Michael R Sweet Date: Thu, 2 Jun 2022 14:21:59 -0400 Subject: [PATCH 09/15] Remove unnecessary ippFileHaveAttributes API. --- cups/ipp-file.c | 14 -------------- cups/ipp.h | 1 - tools/ipptool.c | 2 +- 3 files changed, 1 insertion(+), 16 deletions(-) diff --git a/cups/ipp-file.c b/cups/ipp-file.c index 516ef6ddc..dc25cb038 100644 --- a/cups/ipp-file.c +++ b/cups/ipp-file.c @@ -312,20 +312,6 @@ ippFileGetVar(ipp_file_t *file, // I - IPP data file } -// -// 'ippFileHaveAttributes()' - Determine whether the IPP data file has attributes. -// -// This function returns whether the IPP data file currently has attributes -// defined. -// - -bool // O - `true` if attributes are present, `false` otherwise -ippFileHaveAttributes(ipp_file_t *file) // I - IPP data file -{ - return (file ? file->attrs != NULL : false); -} - - // // 'ippFileNew()' - Create a new IPP data file object for reading or writing. // diff --git a/cups/ipp.h b/cups/ipp.h index 5d13c9a3b..c78d05a7a 100644 --- a/cups/ipp.h +++ b/cups/ipp.h @@ -579,7 +579,6 @@ extern ipp_t *ippFileGetAttributes(ipp_file_t *file) _CUPS_PUBLIC; extern const char *ippFileGetFilename(ipp_file_t *file) _CUPS_PUBLIC; extern int ippFileGetLineNumber(ipp_file_t *file) _CUPS_PUBLIC; extern const char *ippFileGetVar(ipp_file_t *file, const char *name) _CUPS_PUBLIC; -extern bool ippFileHaveAttributes(ipp_file_t *file) _CUPS_PUBLIC; extern ipp_file_t *ippFileNew(ipp_file_t *parent, ipp_fattr_cb_t attr_cb, ipp_ferror_cb_t error_cb, void *cb_data) _CUPS_PUBLIC; extern bool ippFileOpen(ipp_file_t *file, const char *filename, const char *mode) _CUPS_PUBLIC; extern bool ippFileRead(ipp_file_t *file, ipp_ftoken_cb_t token_cb, bool with_groups) _CUPS_PUBLIC; diff --git a/tools/ipptool.c b/tools/ipptool.c index ed332b4db..256c67c74 100644 --- a/tools/ipptool.c +++ b/tools/ipptool.c @@ -5011,7 +5011,7 @@ token_cb(ipp_file_t *f, /* I - IPP file data */ if (getenv("IPPTOOL_DEBUG")) fprintf(stderr, "ipptool: token='%s'\n", token); - if (ippFileHaveAttributes(f)) + if (ippFileGetAttributes(f)) { /* * Parse until we see a close brace... From 2edc4f7d8632f2bd597677a8fda091e9c7bc7b18 Mon Sep 17 00:00:00 2001 From: Michael R Sweet Date: Thu, 2 Jun 2022 14:32:36 -0400 Subject: [PATCH 10/15] Update documentation template for new file API. --- doc/IPPFILE.md | 75 ++++++++++++++++++++++++++++++++++++++++++-------- 1 file changed, 63 insertions(+), 12 deletions(-) diff --git a/doc/IPPFILE.md b/doc/IPPFILE.md index 74fd2efb9..fbb419a6c 100644 --- a/doc/IPPFILE.md +++ b/doc/IPPFILE.md @@ -1,5 +1,5 @@ -IPP Tools File API -================== +IPP Data File API +================= API to read and write IPP attributes and other commands or data using a common base format that supports tools such as `ipptool` and `ippeveprinter`. @@ -21,6 +21,7 @@ An open IPP tools file with associated variables and callbacks. The following s - "scheme": URI scheme from the "uri" value, if any - "uri": URI, if any - "uriuser": Username from the "uri" value, if any +- "uripassword": Password from the "uri" value, if any - "user": Current login user typedef bool (*ipp_fattr_cb_t)(ipp_file_t *file, void *cb_data, const char *name); @@ -40,23 +41,42 @@ Public API ---------- ipp_file_t * - ippFileOpen(const char *filename, const char *mode, ipp_file_t *parent, - ipp_fattr_cb_t attr_cb, ipp_ferror_cb_t error_cb, - void *cb_data); + ippFileNew(ipp_file_t *parent, ipp_fattr_cb_t attr_cb, + ipp_ferror_cb_t error_cb, void *cb_data); -Open an IPP tools file for reading (mode = "r") or writing (mode = "w"). If an error occurs while opening the file, `NULL` is returned and the reason for the error can be found by calling the `cupsLastErrorString` function. If an error callback is specified, that function is also called with the error message. +Create a new IPP data file object. The "parent" pointer causes the new file to contain the same variables as the parent and is typically used when processing the `INCLUDE` directive. -The "parent" pointer causes the new file to contain the same variables as the parent and is typically used when processing the `INCLUDE` directive. + bool + ippFileOpen(ipp_file_t *file, const char *filename, const char *mode); + +Open an IPP tools file for reading (mode = "r") or writing (mode = "w"). bool ippFileClose(ipp_file_t *file); -Closes an IPP tools file, frees all memory used, and returns `true` on success or `false` on failure. +Closes an IPP tools file and returns `true` on success or `false` on failure. + + bool + ippFileDelete(ipp_file_t *file); + +Closes an IPP tools file (if needed), frees all memory used, and returns `true` on success or `false` on failure. + + size_t + ippFileExpandVars(ipp_file_t *file, char *dst, const char *src, + size_t dstsize); + +Expands variables in the source string, copying to the destination string. + + ipp_attribute_t * + ippFileGetAttribute(ipp_file_t *file, const char *name, + ipp_tag_t value_tag); + +Get the named IPP attribute if it has been read. ipp_t * ippFileGetAttributes(ipp_file_t *file); -Get the IPP attributes that have been read so far. You must call `ippDelete` or `cupsDo*Request` to free the resulting attributes. +Get the IPP attributes that have been read so far. const char * ippFileGetFilename(ipp_file_t *file); @@ -77,7 +97,7 @@ Gets the current line number in the file. Get and set file variables. Setting the "uri" variable also sets the "hostname", "port", "resource", "scheme", and "uriuser" variables. bool - ippFileRead(ipp_file_t *file, ipp_ftoken_cb_t token_cb); + ippFileRead(ipp_file_t *file, ipp_ftoken_cb_t token_cb, bool with_groups); Reads the IPP tools file using the specified token callback. @@ -87,9 +107,40 @@ Reads the IPP tools file using the specified token callback. Reads a single token from the file, returning `false` on end-of-file. bool - ippFileWrite(ipp_file_t *file, ipp_t *ipp); + ippFileRestorePosition(ipp_file_t *file); + + bool + ippFileSavePosition(ipp_file_t *file); + +Saves and restores the current read position in a file. + + bool + ippFileSetAttributes(ipp_file_t *file, ipp_t *attrs); + +Set the IPP message to add attributes to when reading. + + bool + ippFileSetGroupTag(ipp_file_t *file, ipp_tag_t group_tag); + +Set the current IPP group tag for new attributes. + + bool + ippFileSetVar(ipp_file_t *file, const char *name, const char *value); + + bool + ippFileSetVarf(ipp_file_t *file, const char *name, const char *value, ...); + +Set the named variable. + + bool + ippFileWriteAttributes(ipp_file_t *file, ipp_t *ipp, bool with_groups); + +Writes the attributes in "ipp" to the file, including "GROUP" directives when "with_groups" is `true`. Returns `false` on error or `true` on success. + + bool + ippFileWriteComment(ipp_file_t *file, const char *comment, ...); -Writes the attributes in "ipp" to the file. Returns `false` on error or `true` on success. +Writes a comment to the file. bool ippFileWriteToken(ipp_file_t *file, const char *token); From 40d2c654cc67339feb10b6a93bb026baa6268435 Mon Sep 17 00:00:00 2001 From: Michael R Sweet Date: Thu, 2 Jun 2022 14:45:36 -0400 Subject: [PATCH 11/15] Remove ipp-vars.c from VC project. --- .vs/ProjectSettings.json | 3 +++ .vs/VSWorkspaceState.json | 6 ++++++ .vs/libcups/v16/.suo | Bin 0 -> 22016 bytes .vs/libcups/v16/Browse.VC.db | Bin 0 -> 2502656 bytes .vs/slnx.sqlite | Bin 0 -> 2035712 bytes vcnet/libcups3.vcxproj | 1 - vcnet/libcups3.vcxproj.filters | 3 --- 7 files changed, 9 insertions(+), 4 deletions(-) create mode 100644 .vs/ProjectSettings.json create mode 100644 .vs/VSWorkspaceState.json create mode 100644 .vs/libcups/v16/.suo create mode 100644 .vs/libcups/v16/Browse.VC.db create mode 100644 .vs/slnx.sqlite diff --git a/.vs/ProjectSettings.json b/.vs/ProjectSettings.json new file mode 100644 index 000000000..f8b488856 --- /dev/null +++ b/.vs/ProjectSettings.json @@ -0,0 +1,3 @@ +{ + "CurrentProjectSetting": null +} \ No newline at end of file diff --git a/.vs/VSWorkspaceState.json b/.vs/VSWorkspaceState.json new file mode 100644 index 000000000..6b6114114 --- /dev/null +++ b/.vs/VSWorkspaceState.json @@ -0,0 +1,6 @@ +{ + "ExpandedNodes": [ + "" + ], + "PreviewInSolutionExplorer": false +} \ No newline at end of file diff --git a/.vs/libcups/v16/.suo b/.vs/libcups/v16/.suo new file mode 100644 index 0000000000000000000000000000000000000000..21d301cd5e67fb68532d91962b3f31fe79b7c351 GIT binary patch literal 22016 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

EkCYySpb>) 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%0DI{+vSntbM5H8 ze*~{zw{Gn!#LDyvSr9tQknpnhFMbvp^3*A0)%MZ$r zRs5b`6o0#EUEA-IypYp+hZMitJ#YR_)bFGGpiEv+@jI+S*?K~!vcD!&HTE6e@4cOb zpW1hL@tfVNO1e^2Pd^>bRF^1Ny&vsNj(r)sC3Z|~cUY?5hVSu{qu)mFjGhpk37hge zBI!sqtibQVckFp~80!JHh8Klhdv>G4u67=IaAl>Ik0RncWvK|Hb}|lrryU+L-y;AoH~nmd$Htbkdf9^h{i60@FIP8v^3}B2@(c_@`pLh`lyxUETBjV$hu5&zzrR z$?q7abY}MgO!i8hwEoDcyWTp-%-T}3wuB|UVVvHX-2pJaf1!(+R!Q!^ z4z+-&KEDRWrB#lQLmH~Qh&*{wW^4DwMBHZ^YDG%Bug+K20?1i}T@G#@y zQkFW!nchiT{`INAS5Q8A9T7Jk8e%*&m?asf&<20#h|zhs@$#M>F{^b=bJy!)Yvh~ipftU2EH(rCv3mW4L<4)sD$2gPfJfgEk$}dP#o&9$eT7h+O(z?(dI~KNp z6C%chKuss@)`uP*&`VE?tcxgSb8Fk`hW4Jf$u-888{J(vmC+*hP=WW`~ne?__ za*c6=jd7(cX_}Kw`m~XG&AqUDbE&1x+18FVwix4L#yD#2^iJBGug~Ito3t*-@9l)) zc!o2CB@Oo6o_u-5U(mgH%(An(x;thJGaT1&r~;EZX@5SdKra=ETjwXO-{juk6~fQ0 zp~KG}B;Mgo@1!02`mFYOlqye23JtB?(8^dgudVKs4g55`$LnQz^&3=sXD{;L_sBG~ zgu#yJQ=PQQAF9ynZ3xEcxk>BSY$((7-iHIf>>v1L5lgn3nb=AD0Oq$HrYq-A7TMRs zZs5#8fip{3HaE@d+zp8^Fh^GPuKTaMbvbR3G*|XWlTX|9#$U&C{OiD(u>fm&s&n$r zT5xvKI;)Qs!~!Lyfs%nNxdpR2caK z(@EO~(xjW$q_cW8iBzV(dxHi9HU$Po0|P~wY5TxFwc?ja>&$$uaP{v8>))5Mq_HI1 z2=+0S&g@o=g}gRa#*+SBAfSIA)4!+Ur*uw`;`{YdJ&V^lXem8v*z0t`fc2I$h1&g^c3`5!e-%O+>j2CKSdLm|_x+4z>WE>{CxKOL(P zw?=i|uxxrKZ8q3v%R7?Rsl8er*XNb%^GaD}Tb|uwFu&!$$R^K~8`tN0`rN@RrRB7( zV4p4DLP_&l9@pm#(dP_iNfQ|DCrD4{yq2HZv*rH}b$=dMMRooG<1_c(IWu?envEoc z;3Om%WeY?W0d)ci1Z9a36xRf0QxQ-=apj_@s9cP=Ve5iBwc4Vs7MI#+)uOG6Ytg!3 zYb{zAwARwv>ic<~XL3w(gYWN;-}jGql6yX%Ir~1_InOiolqGsCRw&dEx+K(?3bD$v z@#{&eAhJ-_U85f+uuBWn8W&;~=41ajby!*~WIo!*d^F9bMNZ?_i&nvCad(~D2!06# z=XVfNd<4%k9~odivLBnQ?|S_Ds(n@cS_eqCydb%;{%tXk1C^XW1IAuO8 z6BVfy?6vhX1!{F~S;*{XX8N0CQok3ig65!{%h&22Sw6aAGBFZVgZ{G1YdCI zdQvfnrP%xN#|W1cy}&Z;W@vNgxXo@8Rtt=AYuy^xb4wrr!Eue~-sm34 zK-d-CiIoD|Aq8PubZc}A_C0Khwnx`RGtpI$gs=#!1m;AWAq&Bej)~SrYasWa1e*4o zr~%0bdz{_QF6i3Zfwv_c&NgV<+k!O%o1Av&+sk0pz%pkMH15rDnw=)cht9oPr^fM| z5@_9X90Mx|_CW96E_dcAGs1YYLhm4`Ga5 zYu7*nUkTP0IJSY+1$)$PwM*@U7QXGOLv6#(j4hChut~M6bjDbn~Sx$1);&p`CAcWLIQoe0#hDG7PrHx5PKcH$jTQx_BnOD!vSI z4BFyz;?40UtPL3xuZ`ElJ;*Xh$DOzl+Y4z1yJNdzJ7YT_&!8i=Ew(kb1=0#O#oA-* z@J?zKR*fu*wZ-OO-AGf+kBy1!fEK`x$hOGV$d<@v$fIb-vq}b<0GCA;McN{BpbM}m z;z!0rYM~9#i+ib&L6gtn^Lm1aXk_Me$X%Aw&0-7A@{BrvM#&zgdbbgt=KjWqL zK*me#YR0v8730PB0LF_TmxKJTu`3ue=#_N78tYyNFSPqJUSO9qo^SVKJkKs;JlF2a zc#d7lxC(um!kujwGoA%4lXSk)E@E6^7cwrl3m6Ym?=c>#-eo*Qy~8+Oz0EjI{fTj` zdW-R3^(NyOwUcqQ`Xl2g^#NUnX^(x~C^$O!~^)h3v+QB$Xy~H?Fy~sF3 zy}&qF{ef|i`aR=;>UqWk)N_nAYCGfp>UWF-)w7J%>KVo=^)%xE^;^bD^%P@;dXmvo z9gO>_-!S%9PcW9NUo-Yok2993#~AynM;S}iBa9_#8)LEh6=NUuFk_K=h_O)pk`eDv z8S~YHjCl&*;L#pwwUsfYe$JRwKVwX&`x)cvKE{~(DWj|IWsItyFgj`rqpj{?RO)U< zOWnm7QFk(i)g6o>bvvV}ZeujmWTJe0)LD$LtCftesTGW`s^yHY zs52Q~R%bBoP|Fx!QcD?MR7)6NP^UBgK`mzdy*iEYd37q|bLtev?P?L@@6Q=tpHe3=KB?w1cBnSS->6o`C)A0Izg8zOKCX^ud`un3_^3LT@ey?l z<2E&i@mK0-#)s8Wj1Q^VjK5SZjK5H`7#~zK86QwbGHzAPj6YX17=NawGv2SJG2W-9 zGX7K@!FaDaobe}W3gZ^l#CVUI%y_q&#CVr#WV}-~Fy5giGTyExFy5x>88<7R@m6&h z<1Ok?#+%h4j5n$Aj6YW67=NV3GTx{TX56I4Fy5d>GhVMoFX{N z7_U~t8QWDY<5g-H;|4X9F{_3!u2+K@uT+B=uTTdvUak&cT&HRnFH`$7UaAH%UZScQ z*QzSUi`4+ei&Q1!8dbrVQ6A%JwIAb!sz2ies+{qB)sOK!RmOO(>dSbJDrH=yN*K>p z#f)dEK8!0>5#tI~NC+uZ`HW}Sd5p_&$3^x_?G)n@$fTn4)9nP~V(3Js^V94Y=5Hz+hlCB4aQdW9pj1WTgDUA{}_)~ z|7AQ*eZzRH`VZqV>felW)LzD;)xQ{zQeQL9R{vydQC~66QvYC_slH@9QhmYLtoAU@ zP@gkSSD!IXQ=c+URi7{(q5jTzxcZoJiu#DLN$qBwtp3J0NqxxJsQ${>pgv%nsQ$t@ zLH(JrUcJxgt6hX@xhh~hQ*ryKGZeQE?sK_))KbOm1BqbVKI(ME?E{U}+&)-)%k861 zRop)66vgd>yJT)3wNP>Us0E7KN6lBI7PpT&#^Ux-b1ZHjb+pCpqmHt;ebj7=+efun+&*fS z#qFbJTHHSBNQ>J?HCx<1YKFz_qo!NjK5Cl9?W3kz+&=0Ei`z#XZgKmlDHgYnYO=U} z)MSg>M@_Q0eN>~x?V}njZXY$#;`UJ!EN&lFZ*lu5-;(w@%zBU8=TPfi#zU-k7{^<0 zGmf+V#5mS^i}7IVO~x_SPR7yJ9~nnkZ!nIuUS~YWdX2HpdX;g6^$O!~>t)7TYX{>n z>m|ma){BfotQQyuTYq32Wc{A;K|yhL^UgZSO?ljBvfzr^l}Er{(88E|*Ii`^m7&!WG;`uLH~*Um%E*?4L# zv_G&Pu+PAgim9GctJUG^Km{pe*7MfAShs#EbhaO8xsi_}&qF)=6_HaTheIly8~zyj z?(c>Cw^PH1hYt+9ko5LMXkBP_$TPoyRDf&Dlg)#$VgAMMpSFIO4bRdWLA+I}NSNLC zzS)r??0v&B8CgpeJz!}1fYJlVVpx`510qb$ek!N{_QH?~-a2XavBy>(g57oLO1#Z% z9h{}Ne~uZ>*|}tgifC(8uyd(zVPD?4l$E!A;hddIw#nXCF2Ul>dDs|LR7&)KEWO!7 z^f{ZTY=iyNHl*UbVuE2=d5ss&-B$M<`=wo3XJb*!&_%S*2`7WI^xm$w%&TuD#Im_( zFTp;i{KDm6BeKDJxa0r#VZSg+{MK8F9E=uR6iIivQ zm78Na31lj2>W{KULjAk2ZtB$XEWJS&{_NYxu7U>n2Yw&x)vrUef3>vMH-3D1mZTQ+8h&?S-MDe(S&~oCtNY&y>&A{P&x-VcUgH0-u+(T0gVKY_cr)wd z^%rm;bHM1Hf!-+`8m3qM!KYdb_mwBF;LXZ`)pE~7Oyz_2A4J|pu0LO5k`0-ZfzIUL zF7(0^XE)Dk<-L`YkDbz7HKHn3RZ=D4&f8bGKXnT?ea7_00ks2S14;%+xN{|3Sy|7V zzlEF!t673&S=a=fDk&-<%R| zbYod`V=0^R{Z2OH_agD<6^bC|`&~SGb>HaKrEJnye%h3e3W6M%9v`n>F2Gh;>a{)O zz~EcK^UW~XVh(BqzBK3y?_5Am8VIon8^;Ic0gEb;qh|#~OYCT& zO=eI5C+({Op5oBC72x!@oqjf%QUP=KRRK>@1ie%MzG&cM2ANa=ZTqT#jxOK2d0~2& z3Q+hOgcnCPRlxZ5t^3NsZwk~Cxj9IykNT^R%Gsm|>qN;x?h?Nzy5wN?61}`AginV5 zQy(SON0R&r`%3=T1?utKne(KFKHYxezCHdTi)Q@*bzGXf(z=;%_5WZHvr{0XK zH!1o3*B>Xz=kC*gtUx`=`}EVa82q8h>yHfznzIb-(Jm>?S}_kA2`K8W3&9{S{w4KL zQavPT9<#4BA1P4VIL(y0Az$4vY5g2YbN`$)w{=hRlqESyUax+tZb+ybBuNr7fN_>v z%wH9#hl64+hgi7D>q&+HX0qG`d=Ga|5?fw!(mYdT)$*ib=>RkVLs_9g|NnnHZXH+% ziHuK7B?Xnf*EQk}(tdb2bRa?-BUBW^Gz`y&0o8{Ys4;}D!VEMN!jknVMoEof1$*__ zFB{Md32Q#^g&e97$$JRu67@lLPJ>Yr$&j8zvaVs>uMSba^PeK8!$W#>gd|-~4!)qi z5{HMsdde$~&HzvrYH=jwOeNx+8%72vbX1F1R$EEuoC6}g9Uf%}X*-Bjyds(WwHz%R zII$h-C^!-rTmX+U!iO)m!C9xR&OWrLO6(b3q>8{VY~lu=XgQoLK@K z@b4HIBhv=jZfvqD5Ha)>&)fXe#+7B)9f%e;c8%SB^@ZQQ^shb*8Tc)9uV}pdgh!t| z)Y$BY@{OtP9k-wG&B_55)TZWzF5Q@Y=KQwdSOHOJv>d;tzRyDmGY-YRNM!xaNGh@e zYGRRrbUb53RJuX2)?n~TYf9u8C*+_c^++Sq1WX(5?P>o4h#{RoZ8aigpwH}u@ z?KPmUBjTViRBoTnGUS^S>qZ*tvG5r&(kaeK5h%P+J+KYJLP0XM82RBQF%%M~bFpNt z!3L_phb0bL*+R&1A|=D{OsJ%#q;ViVC^~1Fq3ZW3QXsrH!^l7}DNe{=#P_Jj;4nQH zh=wEMOz?TeZ#NJ#xfAz+|LSQ^f7GDaH@mmrjBtc8yr2hs?UPb2|?9QyqKy)P4!A7vQ*0Oc}CeLR#z zQ`Y>9_<}39CL3f0`wW-Ajn4EDmAM+{KG}Iw28>6^OJNHU2N znK;N%AIJa&59*bzJqlsOiGv^y$QIl)TrYU5z}B!&M>0Nn!qGK2TX>yC;Mie>sh1oO zm=E8eYbPBUGJH4$aqu}bM^mn%WamiYNRSRsMP8xDmZ6lW8aLBM%iE9Y#IflEM!suVw}69O2Oo{>i)0BaUE%^dt99FAhqIsC?Mc4<_=K2^pED&N{;>thn0EOi*uLPYT1g5Y@HjuQBszNX-iq9=g4mjZhcNAQWoR-J^iR?YD7!c&97Jvw}DNaFD zaG(sQ>x0a)KO+O6ODm2{hSG98iGgg$9$|3trL&#~{7H{N&bje@_>ib5q3%bAoMuo& z@`7tGLg{F$f*TxPdcGLl7i)I3flPLAgb+DFLf^4D$zLAN*7KfN93!XsOf*d`twDdwSA3q!! z4~8kx(K+IWwsdm!U`^Gr7X1wMdPeNB7y&+e;HJp1JKerf+&IhN zhXZpR9ZeaAP6P4q!81CTiC>0n*uZRu3U#;xeLr*}eiQk?;bjD*tfo=rImTvlM+~;O z$wIhYHDxE$vnA5?YK?6lJ-C^2QG3P&=jD}u{`Y%Frq@nzG7~#4y7IdR-n#iiy6IYW z?bXljyx_r4hLj*H&dVK<-8X!3<^e}~!#(6_YsB=`XsYxH_zl>#xZ+3^Y4GQwl0vme z64NfFg<|-X8PAVgZG=OUZ*ouYeTvWr= zfd~Res##+uouK}G096~6Y_rEsbjn92$WR;m@=7v}>9I$+%I%j2=JBmAPog+OIoY>C zCT9YP(euA$9AG5AbrY&zq%Uai$7M@O@kD>s@iZrSCh{2$tu;JEgnPUSx@|&?m^whB z4k`f$db$A8%@29x2NpH#X0mCN_!W4%-)ws6O140$QD!sf68Sz)Ts}Kl5}Og>vBXwX z4kRPD)ENd;C7vHcltT}0lmSE*kwhs=JhgS!6pcEclJpQ&243j`n(>S+5g(RL#6Yfa zqrN!a5e=aiWY*yB^0MYiN+aUMjjGEckyi(JbCHTufsku9d!|VN5m&{U6VihRM^NX5 zMr2JWzhg6^GOk8?K!0N>!kd%Q6!a4fJ zK(ryn-=4wkEFM@)x&z`CNc&zJ2XVZJ(Qbrp!}N*u^G1V@&{Q+zn4!qlAy*tGjh9lv zO>RSooSho%cqJl@Aq?hlW}ZH${G)a=28CMdWnkjSpp<+dJqNR#2P;Y%B-D=(4U6s7 z#OOeatsy@?odhA_0qJ|5sY-lq9_*^{o{p?FDk68mpR*ZWFRGc)K@Z!MwmHW%raGAs z=32*Z&)}JPbL5;Uo)M|vY}Wc0;|+}&F-odR5Idd_3yr3F!{{)a66G6f=;4ZzH*uS~ zJ_EfPKH@{-AtO`bOrSpHq1YxY*MRz-=Og}fJA%<=Hk8TGl#Tg@y&xqDizDRwu%^7p zK@s2xWysyj@CoIHitUpll{|#O@6}Eq%RIwBl08v$n3g;;;hp^B?Lv*Y8AykVbTG0* z?Z|4zxOjC52K;3g7W*`bWun8)F&DK@KpZ>Fbsa{igVI1s`M<;^rwTqo2J%VeNM|yY zkqPL;P0l6sv`t4FUdZ^!tx<3B{D*N4DUcZASXSiA*1~I)1&E7$h*kvHz(AbMs29j1e7&mm>X-2bceCo z>E~@;>#a2|F;vFed{W=gnzVy|({m0#vIPCPeyvmc%1bvkM+TzQrZT*{!+Cz#j~JWc zQ{9Rclhjx7V&{X}jNu)zv1#kTb!mEZzWR12w8ne7X=tX+2@S`1+3uBlnGCM$7V5LT z(QrB*Ft)A@VGi@1O!_(F$LoA=|IJhj%X~Av$4xu+d5t47C8s9l=4YB~ohvgY*6|re zKYva7`u))MYa`*zn#QO6_v_4ijb<}1gFB>)r)<13JYei5KXP$}lffkCykKQAr&JoD zkN;yV`r_&q6bCh3>-ULA{6fDHW5SH|8?Xj1k>;*72COj^veRMWeW-JV5n1o2y|qrI zQG?FX&|8N=8_wjLRXfnr3{VFtz}%Qs9=v@}_wRx#zrGVBMY z1Yswfp#fk;2gWw%1O_>pg@Ho`Q@(Hb8N9ejb)X(8*C8*n*_aUVK;aER3{0DHU<^DdMJs{@ z2F_X^6E=FH;kT1-D%VNq_ml~QF*CKG#K0ZOGBHC%+DyI~U?+v4Y9JMwZ*YAgiiZtE z7r_+}uXyPc4UL#7BBz;3L$-bsIdI%W3?E@Rl6ANzqjUVoh@ed9CWg-w1ByrXn9iuE z!GYnDcM|gq;^V9vUZ)#j2B$SfC==LW@bTf3Np*(#g_6R5hJ8_bIFM9_DN{b^Cf}?u z(Rn??`@re&hiAyYiI_8y8b4!DRZ+Z~vUn)SR9z0|Q03H2xH7&d?HPvWo2ACx5u+pB z?4*5~qcK+VFu`4fEH@$TOokeRn$53`Agg$B?VHF>#D^7)m=F-bD35f&X04yb^|2C} z#r#GGE+~vJ+NuI(hP)2s-e|+m3z`QJMJX=WqeO7vgTm4e!yASd8d#D+W?zYhG^lAQBBei(p#I#cZ%Q4IJ#Jm8D+(?$hd3y@#RdtOB-9iceac*cDoG&HF? zJWxIy&nG;H%9`BPTp}+78 zC-hv;*t}SEl+evo#xjkL%Q|MVzp6;af3K;nU}2~c%^Wg21|Oce^9(m?OhBw=bL7cP z$HMZ6;oW&{`k;AE`p7$}f$~D=0(c}3McQJ1$c^_yDcYOQHzM?QE7L~r0n+Ul<6dS0 zD!wX$ltSr}${J3Q?`0yHeBXq91iwt7PX%r=B8PK@`sj!m6ccUjA-Gf?s+@)^isOqV zRRl#$HG|R_Hucx2few#$m=?ldD&m(0o}W+d+@WfzQIIbjKADMUVAS&%4;vZOYbawH z$c>S&9K6QyLg>eMgMfJmFClbLp@ZdnUZ9wo*nzeXL5ut-pxAV&#RVX6(u-hxi_Xd8ScY*?_nw z^;=ehL10{wr&F8(k&S7*b#aWSNqHD@IcmT+mbF*; zs4L&|d`w^lVx=nq9$${6Qv2;|(cYDYks*7}@FMFxe9#H`ID;knhJoHrEsq*(Lbbw@ z=2lpE5%i9FazHp7AtU2mRE0^(SeHf^%vc^g;vfDg1dkWr@D^pnKZW4|Z{dbBa(u;$cs&8psf$#9{gjh`!bc`LM)jrZ(`+OdGu~G$^gK zLDNuP9!isTz!2LmgAPO)%1~LNd@abpH|B&2Dka&n37dGt^Z2aZuV<`a7X&4Yn7AQ% zDuM9Rz`H~ra5zVCC8a(G+sh^^e|*2-e%9NAAm^m4WH76 zZJx2UDg;E{+t$S~HDx?1mDgdcl`dHC<3%aqjLPq+hyKN0!GF@`vlkv1Yf7)BW*>KRsH z+Q!)6VUP*6`Rg!CP%OCAMBAP;_!5HC6oR62QAy#s87FjacR9QriC;SHRiWH)qlV02 zc&kihNjoMYXzL>@1B%_v1EE$OdzXKN{p6S0=VMpXBKt(U#XcOnl}BMma3yx#ChZ7h z`|VL5LQefF*hT&X)=J!qJ>=J`^^o_s3Oi}$sbjH!e3BZkMqu}Ne^m$tuRowM9uoT7 z+@sv7?gZ?&9}3z0eX-kKMgJT95_|36jlPD}avjl!qxVH`$3FWF(Y4WYvCDoz^myz? z|JwTG{}-M1z3QZYKGG3+IC5X)cI*q^5Lp{J7rVk2{NHG*Pko*GB=u*=Q+P4;G^8tT zg=U4DQX3&l;lk94)Txl9a8zn)Y69da3{6#~`a+6=O8z(bC1fbPn|v+#JR~SQoV+i2 zJLD&9NUnvxg=NVF$>WnVAv@vFlpM*I))r?4OYXISUf6g@P0 zQ1n1ZE$9=CM?;WV@R{?0^A;o)JPXZ^4?Bi?u%CjAf}h3jgwBWd_@(jl<7Z-r|B3OI_~F>!KPo;L+8;{d z$#?`(CHKTWjJ+Lu1v~qni2X8lFZT6cA6p;02)p{1#OB40#h(62vGLFYQ4{MQD~zGD zb{?$3(mvOa&6ICYOi!{(N#)Jbd}o6U0ZaO+RI!!Ut$3hU8VNvt}Pl$ zi6zDLG}jglrFNTZN5l?HG>?*9NZW}HQu|m}eJ6HcqJxy|L-lwWqr3Q?YAumFNt$!9Lb@qCM1}O7w%; z<6R|MLG7`w`jhypb=9kyy`tI6!UntQCCy&c>;+*puKK-Z&ujLauqs#mPP1nEa1KgH{AZ;8%`k5tN^?+tuHT$`+n5*vB>^@;p zSKTWt;;4HxyIZrnm|<10TA|r;&CV3|f~%Hkwp6nv!k%~4V$Dtyw%t{y2z%O93pHDy z*?eIgt~yz>lQf$v>GKug9EF&Rh1WE>HbaYRhU5i!x~OH8!-5)-Yy#6+tvv9BcuV4~lb z?7q@=qTiS7zSMRyLZRKuk}*h3#vqg@Su&!Cy)7XQb}iAf3q?ZKPO%%|T5o9fx@NCw zCSyqIHfAte+LD;GrE`>POA8W{79=JuNK9Ig zn6w}{zrOF6)#1<6iYkeKLTCiXY&??YkxyY_Zw z_BW3GtY*(>_Oxcd)$A!|kanw@HJhQ?bYb_pYN}>O2)o-=Q#5PRY_hOBT-B&qgRom& zH9@m_&3s`uyXsJ3KXTQ0&Bh74!Bq!qHb&UBt{SD;NMRdYRVVB!R}I&!R@jxU8mie4 z%?1m*%vA?!c7SFz!q&KIpk~#YRcSUrvr1vBUF8Y8z*YT)o$acAnw4qRSF=*hN`$R+ z6`mx_J44Rxt|N6yOzM=_ME2+0>^f4X#H3D%9j0BScAXntM{1Xt)Go2H;%}qtNbNdc zqqUvXGucT!6FW$|N{u_~Tt{l0nAAA2Vd4)=>YnVR?ukj=6C0%cNh^?@w1TtRb@mrm zFlhy{lU5)mtw2m#fta)cu?ihl+JojHX%AxM;tD1$Lw3?K#H3}2Ny`wEmLXQG!}igv zh#8H+CpGKP>^GV{q1mrBdt9@}G<#IDM>N}}*{?KvShI&T`=w^T(Ck6Y9?)#7WC-K*J8G~1%tJ(}IE*}Jhw685jC zeWPZZgzbsi*J*aGX4h!8QM0Rs{mHSf(Cl)})@gQ`W|wMqiDqjxyI8Y}G+U!tMzhtL zU8vawnw>A~F4vaX)&`T=me?e5y~DL-X0UH_?FnLclWY5$$$VhL?oe%ah_H>WEu-58 zlhI8~Mz_7ewPkb@lhI8~Mz?*XYs*NsFL!MjzxE}rEpsO^8NbA2{Mr|}wv1Y0GHUIN zYs*-*FLdqwBv*K5DyQ%N^~Uu^>RIgnpOOkCpG#her_B8lZzpbp9>0qC-{QZFuZ}mw zo!GOnD`K-^arZ@cy*mjv3a>?Pi7t&E63uhocW!m&JC%@A_Y=rAsZ#Giw%oC*z5!$SIKn!f%JO;fY}jy5lau9{&RK4f9%au{jjq-kv}fx*XNnV8;=5Lg3JQ zwWA5Uu^7)eq?j=|DQ{9^HrQHJJ(Bix(?(1xkYNF=E;kfo-}vyau&$kx-d9l zd8DDn1(V{F$e}tL>@UhqZ(=c?rYOCrER>u4p*@pdaOV8^LGrbAwaME4 zwUm5yHrOtdThK#_@%Tw01`iuHY+5$h7c?BrCr4-VjqjO~=*!~0ES+VSMjSSLSn03> zSrYlkY_LzLsJrIsXpudx7!SKFRWs0B-ETZd^9lHMD^~$qr0)>Q&*Uua6hfyMHmGMQ4lXX9*d@!Yr>|Twf0fj|PzZ9as;}x(HIVlr zPt689iAE3U8Pk~VF)eRBZT>l}OP8EHf7yyfwB?dH>Hn_qD~c-yRZyyjXK6nXGB%{H zXLO@`i;i!wT7lt4q4 zv~^(jRF6HPW|3Xj$FAMS9#Lg}QEGmX&t{l5i8f>dr5(A^jG$x*Gf$r1T{>&R z+~b*hO4$sNmvLEA-htc{Rlwvw8G%LiaEgYMywFe7(k9H$`k?S7;}|c;jF+iOhGjcddi2zFZtvg6uF_p%V0vH*KXeB_OIkdn^j#-ujH`hZqW98A zs*9`B_;JZcXB#C7l)P&cn3t<5itZ(kRrReZ#*b_d%Qi@<(G5)O9!BWSD@0Y7Qs;Do z0md^`QJzzWWG8YAxxx?Z0exuR>6E?$weuodkQC^Wq->DbBInsCR z3ieCV7euK&iB@3gJHCX-6&>Vph(L4@=0Re0*~8d-u2dX*zdn^AQh2|xi})Q##UZQV z*+V5%?(Eqgp{N^tFG(kuJ;!AaK^U}h&K7gKyvXj`eTQ|}oLgYdO|i*4tS4s2OX$); zh=c#Qnb1f2acIcQo_{9f{IsqlY34HNxn^5Gv#pp-+GV}qu#bdxfQg+(_Z z5)t7<66Ia9wajcSVUujfWyea%%X@A$xBC|L39(EDsCxT;leKxGxzcQPOcvMBkUdz^ z&z&wxi|pckOc!x;Dxs}eZk6e&ut}t!R?Rng*nLhGHQHD4r8*Udqb{uU57VX zzpx1J=AkC{tWF{J$DN@3JU{NIeA1qK)`)DNZUa+)*Pv+ff*`0U_)&)?4~yZ4KquE` z10@?pr9CHweB|}?xwt8&3Jx7=e0*5sFghQd?bNH${mu|s%qy~!-Mja}qZ>y1_;J@h zEE}lRK-cb?LxfCo$lkhk)#y>9hvUcHdR&$?Yf$wZ&@Bd(F-0+Ockb4$^G8>V?vEe2 zjLDK_4ZKiAm+qQA?wgWDeR6yB=t-laqtm0w!Osqngwdb721V8rMRsf-{ke41;8E51 zabK>@2HG{ym%B!Rz8t40I{R{ZRG(3W_~Cq1Ry1lrHh#|x$B^M3-FVc{QP!yBD6$@x z4K!)w){|RgM|-KK^vL~2_QQ|rX;hXJX`r6afxG4u^%O1Y)3g7MtQe_ACP$KWLzdKN zpyyZQ+$B3jL%Ya~>y$wBeN*A~bZB^Jd?<;L^RuK*BV?Lo-TMjBhji+QW1me^T+SpI z9#T9cJ*3YNavhx&Z5k%#;2uSQ;8BXAt4@RPAZKuRusxV8M`x=g@!XJ>gj~6N{yYjz zH;EL|9h4k&HY{Dd038&WY5afZYxV!lcjf_?-_`#wR%-lzXH`Y);m9UZ$&7CM zBf60(dW6oH-J;o#H9J(Zv7M}tRn=37!uz$|7R^r6>{QK8(QJ`sBQzVPSxqM^_);^S ztAZP~-F2F^YqmkND>b`Jvo)HXuh|OCnl)?GY@%ipG^^JPOOmA43J%ju*HytG+HSmN z<22JXS#Yqn8>881%|>Z9QnQ0JtJ6%^WWjK4SF4$>-GZUoZir@sHA`!j(u_5LQ%e^l zv|U`Ym}ahKQOz99AVnysE2WvGSwyq2W+BZ?&5TZ#|D9&vYR3A|DX01W)pp-#_8-mu zt=V49{-xR1n*CF=uQdCIX1aIgf1&O6X!f~gpK11~W}j&Gcg;T5>?6%~YxXzIKGf{5 znthr>PqUwDcCThX(QJ!m z_h@#vW_M|Jr)GC(cDrV`X|`FjTQ$2yvzs-$NwXho_9M-1)NGSxH)wXfX4h$Ut!CF~ zwo$VyG`mQ%3pG1Wv$Hi@q1l<5Ez#^$%@$~OvSzKC9k1CO&1P#hMYGA8)oXT$W@9xQ zrCFV3`f89rMB5#pS&e4lPL}tbX8+PmkKa7qmU+5f^3Kx!mTR_Dv(q$NsF|*fyf$rj zoMuO9cBE$0HJhrLuA#h1+ODCKrFFkg>;9b9y*RCVaa#A{wC=@e-HX$@7pHZ})4CU@ zbuUiqUYypwIIVkeTKD3#?!{@{i_^Lnr*$t*>t3AJy*RCVaa#A{wC=^}t98lSHM>f) z4Vq;&Td&!bn(48SzFga_)9fP}rBBiRbWcpr({^(;J6y9S&2$e-f8WCG75xs_h1A zcA#eaYgVOMUMEX^+{xl6Xy$7c>0~k8Hyqth?YBE!Z9SLRdK}qDXjeU3*p{|4I+^;9 zW?yQi?{3s*+U^t0c4_vmW;!qGEp7LvW;-?eqh@btrso``?+Vl(wCi@wp4RLM&2%49 zx(_MchtwI`-|3p2s@WpV=4sZZ*@>DRui3Hmnil(`3~2n@lsY<9mV7^XC%*sJU`_dL zi4zia@$cf#VGZ|;cvuoqg=U1}=8NW)W|L_dzc<$T z8|V!N-ohNvQyZy$Nok)DeG90cH}A|@5c;vvNUnHU zdu=I}LM&T)<_dl{#3{)S4)|B#&brxzjrt-1j7S2QEV;5Dk*fjW3HZ9Ylv{)UQuQby5=_Lbc^JdSy zxtvXMK4e3G$v}>vQTxI!8JINp^ivj}6J+5g^A7Xoq(;df~iZFp0;vXXLdqny?LEE zA!$ya*e7i$-B(^9Re0486J3B>%ImWEa zGb<@Cqc;=>dC6&!vrDnDLXWDnaqE7@t^L>xMpd66WX`BMi$YQcd(>sxxWzMWDQAgK61vAZK(&Grad`P8@h*C4Lmkm<^)hft2p{SiZEZ zOGz5fSUDH!nduA42`f)boJi#uwt=)iAOl!R(DmK4nP)F8#cr8E&wQ$}Ut<}5p#}5C zZyepX4=x;J6^<=JoV0d7Zd;>GJuK*NH6+i3VwP z(j-ACcdv7#ytvdpZQre)s2))5;YaC@+92vC%mF!dby}D7>z4%6Sk=htST&_SeS_$s z2)E`ebUC$@J~+=h2fg+5iO}qP%EFar&RucJ(j~)sv4cLCF{SusyrN-)D6R+}krUx5 z9O1;JXU?CrbmbC!2BEmRpF&m4;Np|vW5@>4Z_&$#@I@RAeaK&Y7PJNw6%rk`!R7|Y zRV`yLWdHO%TRv{*7vO(d}q=j?T zKil(4uqO*2Q@VaCvCJC^%o`GHlK$r9<2QsQe2)5O`{W>e7xmAUdHsIo^?lhS&EX3U z-4K%Cgj9maouJh0Kk(`d^bY zuc1mFn_aC7)op|q*{vnmtJbqn$>9Tr_ruR3hr_ZL1_c_{eR?RePwWhwQ zgkm^2dx6A&Chd{@2^0f;g4+_EF4G< z^@f(?7oy;P_B;u`U-#gcFOH+&a~CgMiqENwPM0`3TOx_ogXQ><^Z4w!hytxpjjy!b z*Qp%ar4<^G+V_hO2Ah`+iSrV|;n{N}c?#h^%Xpqs zLi5Z?C!cxFGAMq+!WN=KvuBI{{c@&}quKx2Shu(I?Bzoj_36`x`0(sm`^wZ&IhiUf zE2K;vlofR#;T&~Q_H0gM;gXdr7B3&hS;In_f_?>L<7Y`72o?uU%*k5|2b;L`^wXCv znMeg%iV2QR8ctaVRZ~M3<<;atd%)>+S<(rD7RXT`WzRxxdoGnpm8E2<3@HMk(UX(# zOoZw_`6Nq|WU+siw1438g4L}+y^;}&laDO6n|XC>fq7OR^Q`(T>G?qHSV`Mm^MT!5 z9Owz@T+G^KAupDsTwtD+XP!l=`Po3*M_yg`sUpvwQEX3lPws6kZ-F_z+MHg+=E)1| zv!wN-*KADhnT;+Bdd+F(>E`r2bGj6oRDbkZ=xN2+t4af_(AZLJY?+ZIEgwh?i+Xz$ zdTP(q_PMCnxW}AiY{@saP}*a&o!UQgriLSmu_qQ+tNCZ1HGkgJ=A&jzY4FVG`F+nX zz%NV=qqC&+0~s$Z>p8C+E`jGRM`t>E#!L!%Uded{_+i!B+~o&n1Dzkm1GW88YKeeS%)i%+l4F4Xmn)Vp@F$;H_7OZ8o_q|cH=vZUNY+P23n-K6d- z(nYyL@Zfp+8B6k(&_ZN4G1XXYMh)nSc<(SHi)!}J5?)5W|Xq?%4bp5QBMrbyiI<@lZ!Qtb6 z&{zG`X)|WEi0AfwM>%VDbMw?=S}EIC?H@jJA5jLrB!e3UhG+EjH)VSB?3UJ+nf1rC zPMZQnSkot0X8VT^>*;OcjH6JD8O@E;E7u22)U_dIv@|u&th}-$T-P%oDe|hkA}?GW zYC3u*-Se)b+vbA4Dx3;U$r}{p9LmC`Pnm_`J$aTWv1*<@ePUDVk+bU?(7MgZlMV>a zrkH=o-^?kKn_7}5*Mw*NzxkZnIH@H$_rUPc|8E{A%xGzuF)caohjZC5yM8L?^4K5F zCHs?H9{0n!WS^YNV}3Z7>@mpY@q@z0{6K-kSF5By=ZB*W{BjPC3VMA`)lZr+wW0Oc zOJ^O>JzUxK7(w zvvJO-aFVf8e=xG9`l*vp%u_1ElY6aQj*L7d7yY0Yu7id9>LDCU!;IMzrZ!5Z7W`o5 z>nBdcC3MP+>B;%QXzW&DG+2}Q!D#I6Qs0s+s|YvtEDA1;N1)nTr`2P+N|yEukIV5v zb2W{{p~3XfHQov2C|zq?|$P-yIS{xqU&8cyE1E!dy(^+Rhkcl&#{W*z=GjMCt+EPC`Y0+dybJc{|lUhl$VC?#$@Q_ebOG|Sr+GQ46t#x?o zaQD+*Y-`<5a%^i`4|e}PAUs84pi3ncboQ*)+0&1hKI7==t+OUJHBM`E-=T`?i8H7>eP6ymcPn4uI&;#*QDa6Ql)YhY?v@`{EKhOxe_xBE+<*oiM$EmX@)!zm^oI}l+-9p#+BWF)( zY^naTYam?qr_Y*%3w!U3dv z5RHLOr>RqBwN$5iST@dSoLHUg5eeP!HO_(eS=F%~PR;eG7P(Dydpe?oajN zM_9V+s`|ET`lwUP?#S58W2(N%ahP??^p^TLRsZQ)77j6C#`ME6ysQ2l%zvB@cHvA{ z?d=mDrZdC#l-t z1Vd`#tfQ*`)pg_s_T1gS4(gz5OehqFJLcr-e|F755UiQQebq~ZEsYpI{|LGvN2rJH z)W+$PTbimr@0yx+oY;hmL}NqsXL#m%1c`UOC^t4tZp5WzN(*kZ`Py93%e_}uPr)U+ zs+UW67jMa;ecj{8J$=i}DY)43oy3Vhe8GTF#|G&ZN zZ>0X6`ZD$R)CZ||Qg5VQN^MU)37K`jNZpsZD|JiihE#j%^3+AC^B}qI^wfe>YidsF z$kgGfiK+3ak&s`vf67ahrt(vd#8J|d%b&=yUtzXp6f1m7rXP_6WycTW_Jo?7LLPPh#~GkcR#np z&2wEh49SK6jD8mV8{VV58GR-C`{>irUqgQ3&!bzSw?%&xy(YRodP(%c=-H5BcuMr7 z=yB1O=(Omh=wZ<@(czH0Hz3+CS`AvD)H1XN7aRv%qPEB)%h^!<~uFcxR+D)Y%`B-Af^lFXlw-|Jh&LpWD0b z_wBdvw&V}?Gxihquk5Xm(Qv!{WBXb=3u%w5?Nv~-da8Z0eLUWyOt&XP=HtQk2z!uS z1>L26?3C@;CL}-pLw$nxEAOg5svYV%^^|%H@*nS4cdJ_=>EUX1g}PXsuU6vC%R<$r zj!`q!5voBQqDHAggHdck_u`i-^CdceBZy2HB3 zy3X2QU1nvhbF4G1)2w;c3D!~846Dhix5ip^)?lmJ>L34e{7>=M;xELXjsFIc3m=Hz z8^0rdQ~bL4hWKUiO#B>38aypNFMdM&D6Cj%ir2@-#_J$&usYs9UK~%yqw!Geo7h*e zPa$>iz1Ys!%dzKUzl}W}dnop^*gcRvcw=m1?8?~M*afk(VoPI-VsjyZa8~jRtJq3g zQ7aVrCh}F})5wRB_aZwZFGH%uZzGT6t8D#t4iS z7)4NOj}$mapiW?fz;J2sqs1g_;P$^I$;0f#} z&|jcjpr1gQKwp7Uff9jYfj$C70)+wv0{H@Y0%?JiKvEzf5EqCExB^iDN5B?P0v16D zBqcM11wsO*fWe@?6Zlr(e**s%_(tGA0{<4+EATIYuLb@o@Rh(n1imCFR$mD05%^r- zGl5S9J`wo4z{dg~3G5d5o4|(xe--#Z;4cDy7IY%WTf%|$7*xhQ2e7p2VRqLkTOlro!(Qf6~e%4{x5 znaxEhv$-f`HW#JL=Ax9@K~Wx+56NO4h$6c?pPaZ!pC z7o`aIw;X_rQlz*jMT(13q_`+Wii=XDxF|)q9p(UBlp<(#=QA!!5k5=u85gBUaZ!qJ z_so`Dlp@7NDN~1Qe2cG$XREfT$Cae6y;{Iyh-540zV=s#PVx~O#(LvTrY5) zz_kL`2y7I%TA*FvDuE3GS%LKeR|;GqaJj%bfy)Fg6}UuTt-!?uWj2rZLWqv%e6A75 z2&@*kP~ZZA^99ZmI9K2tfmH%$3!EjelAu7X5Lhm7rob5j%LJARED<!{k%n>+R;3$FF0xbfw1ZD~x zDbOr1LtwhVG=ZrCN4ToVoF9gAf~}D8zS-G?=gW1F^1jMh<}7mB@O0ViG&#OA29n-u z@N8KE?P<_LVef^kzul1bzSG`eZ?`)j?|rMi#olahf)0Uob_P$C%b-P|&7Na7+f8_; z9AnqoHMSSu1c~tL@T9gXz6>(q+v0QL&3I1p<748r@tU{?x$x<@6E|XeAsK#mY!{x< zc0e|KM{HYcYitXi&^E=|W9zVPU{!1xp3mB1b08tUDdxw<;JLmg=EX{4>6jBU@KnFY z-R=?Rci&=5BSjxSQQgZabdnGwv#PnY#!Y2)!Jfhwl-Pq);c`buCkU{i?APJj@68(THhLD)mk-{XO-aT66%m5 zdn0=yyCb{sY`G({9eN73MYcw^;K_1Rq&>0@8ZK5rSHYr48#M4WN1C8%eGHx|Ya(8x z1iCMv;|I@_d&0Z1wqa*@M|eA)D7S^ThPQ+_hc|`W!%*oJUKL&zUKDN%&j~k&o5Fr- zZ)#6!cWM_j6zstJo{rQu=qT8d+Khc5?a)$?Nv%pPOD%$)f;p+?R8z`_rh?j34c_#W zKv#j2GLn0fd+?rTS8``^M{+y#6>P&>o-N7E&{)u(T$jw?9nZ4lqGVfgPO=$V3;g7m zWNoqrdJ9UDX}sYvpt)dAVs~O!Vkh43Y)^C~wk5Vgd%X_=z#lVNjFs5+#Xr!buqMy?C#)8+r_O#&^WG$2;&oU~7DfvklrR(s*lOsJ+lv zv0Lp@JMqq9yXwGfzg2C)T)IiMt92>^trg4EBD}Ad1HBbZcrUXk+7_J?ZH6ucA8%!9 zqczZmP!df;W0(Pb2z#8}&Ms#sG$L$wI^vu0_L2`f917Vr>h}RYAK-J0RqA&EJ{#aO zjD6Lw1AIKd#~6#%BLQw>#5IXAU;Q$`Uoa-s0|9Og@aK#%b$@{OF-FzBj1hHDfOiLY z7omDttq5>=fM+tkpq2%=G{7Z{&#T1&p2oOcox=FES{UGh0OvDysFMRcDZsgmPpDSL z$JGgpkE-Jsx2a*{zAXPY3wh0G|r*$pAY7{7ryQ1SsR_8(YTHH&`1c@jn`%jH_>Oof7+B1t{a| z8~dT)T*lcqwv4lH><7u-deE8^Aook09~GQ)|HL`>Pv9)JzsWi>K<=k_x5@n!$o&*J zEpX@ligWI-z{3N3?zcGSehcJ&3!D_VbN|IT_g~<|z@Gat&bc20xgP@$3*5Ose*-H5|J=`Uz8{^V|2%-1cpL6iqIB+@ z;Mf7G0IdKc0fqw%1!x9n2-@ET_$}j6_J0HXCcys$`2Vo?-tkct>;L$ibN1}c_Dyda zvS~nogwQ+LG)N#o2*Iu)jT(wcKtRL|BBJ2#1{G0J5iD4)6;afCMMTBkyP!O8NmM{fxCL=>?SZ0{R=3uT@Duh?9OmNk5>ZA5hW{ zDCr0E2fZBW331XBDCr55^aM(J8mm+q&p>HB8z-o5Quzt$8$`#cuMr)izDjhs`if3p z*6B++eUWIP`n*n`)9JH1eTL`&^(mb`snaKP`nXPM-Z18=G;aWXgwhk#{W`r{r~8Q7 zRJtD;E$Yn_=jx3_jp_|VW%W9pUaQkRM45UGQuSB$N}@ljR}lS4y^QD&>ZL@#Q7_Ty z#X7x+=qKuhI^C+%Ekr+5&)4Z@ot{VZUG-d@Zq(^HL|;?8bn4UT**aaX)3bECPN!!Q zeOXnb3*J-Ox zTXfp2(-lo%AbxQ3F$8XW&)ZP%k zNsm*zLwv6ur}l^V^?IE80mP{v0HuBabhmz-`UAvw>G7*|dX-M8pTO~*6#vmg{lxSm zybqz?Uzw<%0HuBcl==zKZTj(UqOY4S&?)s3)9dgqh2>v2Q9l8?Nsm*1fjIRSpwwT0 zZqScYzkxXQ8=%y0fKtB!O8o{X^&8W5@Q#M(xenIJETiYHlp)P2AwK8m31l+J<0foPJh?wZ#w-|r!+sCYK>o0e5UbBqBX|PiB=gu z)#)cX{TIDnM2n3t>huMjK2LOr@mZbH zd}|tFd>YNp%Gq_yc@MntO#u&de{-yKjDWYZ{qX)(YB$*q*v_;~wEhZj;oGcD){$1# z@^{M?ONGT|e#N}gTw^xz!+Z@NWO^UQR+A~$_&xXr^n>+(oce)!7u>05s#%6l!ROuu zhT{z$gv=9OS-wx(#|$h46i5E zDo{#eNRUzCpqz{CBTp8{n-j0OitjBcB^dQ|baqJ_EcT#S$OYc2_TG3dKD zypUG5Xkkvj9Au0A$J5nHvFExcBS!|j)E=8&Pr3)=1%BPZKGqk^_p&4G=LbLunGGVPfunP^5f%&$2WQ1WB0e;-{688n06j#g+j zcZM6IL;UDe09q{;ulp`4qvLgFBxfL3=tt)Pz0NjwQuYwoczQ}Yvcvu8B>=3qVz1+l z$m>WQkZMm&NyY0J>erkD^fHOuPA7qp)&Z9>985pcQZQ2BM?V0dRxGCZZBzom%##z6 zkxcO;`ah_oS(}Gf?X5W1!bAf#JH4Tz5=@@TVS9T;!^~M=O;k4%O=XgblI%%?lN#Wx z!~8R}lg3u}U+AP%-GJuN4AmWCKd%>Z`4B*@Bgg3t%2_x}BIZ*pGnzaE-Ayg`1$OftfFu<`*q=Bsq|s=ttas z$UP>ev)za_LcNV{L9h||INb1G)c_mNtoAHBTG*BQtDra-AZ8Rq7;pjt#NKr9FNC&> zi<+bSNhs2RBVBMJpSHYYv8t z*JD{k{y+$nNb}}6>7G34o=gfcM~%NytA@cbcAeLy_aO9u6M`Cm6W2g-f~u&rs$s)3iy5(k8*QI~^Q8b+kA4s>qU5X-Tq#A>^3h zFV*#ksiAAa^eA7xV$D&jXpz({Ep|zZ@oZ!KUQMZ3)74$+;Ag725&XXpPzPAFs{=9y zB*VV}Q%Cqqw31P<>d@z|#*$0nwnCs8YX8*!N${^=$|(P2y;O{;>{VC_ClxG(XUk8^ zPlkUP(<=PB?*M2@{U?NGa3z+*Hac2U=4FESo6J1SQtd}40x-^?gGJfU?~JHEcx-9z ztzXDF(!5+}E>_)OKe`fti6Qo8az#2m_N`dn29G{z32Dd-@oR1adYR=fr`-B1pPHD8 z++aWY2>?a4=`?(bye!?Lpv2^qWNWe`8QDTVx&!F-p0I<2hn_&eMFg@V{9`ofv4-rI zrpFqxhkQQx(E|YJ6l=)79ZKP>*K^0!eLhU`Bj!KOOffJPm!yGzvM3adBxP`pGT2Qa z!e9W3hK~Cmi=uI{UOo&(BS{&QqYTQVP{YOdhp_)+T;yDY#jzb}&{2;|QVKjuK_-Qm zI^C~30T>a3d$CQ&XQ`t{`_`&nr#D#{s7zG~z;Xeljq&UL0bsyjmB24`VHhyoY2b{l zBLq4XCm+a=52RA4VCqP}?jOJzRf$ehkV=N&BI4wG(?Wl8#{_@KDL~A{2e4S=#mC9_ zxaE7&D8wUE{hCt%X>iQN`}K>5dH5(7F7H?R$@e&Anud%0h174%@PGr>`r^Xj)#}1D z8Rva?2$w758@OEIkSj2u#IO4Vh;=rxH4WU=#okI1r!4g7Bn{BI5XZw;_>&UUMk`MmWRow=L3Qe6&vHsf(!=j3&5kma)4 zy-pj;JD6vbJXN-98T**agNm!>RaYc;GFSP?-Au7~WEQ{AHI{Lx%i>l(Z;!|4%V!2f z=FG>q#LTn376Wq`7z-wPn9DcBmm~WmUl+j94A~{izEs)6SmIYql9bK6u|2X)6*+m* zwHwol4PH;>#_V}kpMiObJ@H=dO_hC&<*^F3A@O#bufUUYBHNa3^9DW4QRefcdOyfB zxDvZIvo5dgpwCh8sH=>z6F%HrUwg*Lr(D;0TG;u%D$j==v$yEgM)dc9-FuS0z_1&t_E$+d47vP@bV{ zLt&kzj-Sjg-daAl^uW2y2mVT4NM&Ak>FpnXXy7w!-eNwsG$p%xn^)d!Wn(L|4`s9B zvi@~R&K+_gldwLJcWWbR^?B-YL5 zP1)&Nlv8!>=CSh_bJQ#`?t3!M*Qh`hkGwqSaFyLF`Me&cvh$W@Ko1C;la^tctrN1GH}!lc52j{6J_i$iqDeUYQy4T#W5v8*SJHWZ*dzVNxmN zgQC8mua?DuNX85-)yIrJXg%ig8kmVg;T)gKt3ofq9|M=o&_g62^TAd{#=O^h7z5Kq zkZ561(P^Pa#*a?Dbgl=3Sb$@A#p^<~BpW z%@4N4|G4}27KM4b4pkl5!R|eG`;Z~r>$xEDp^d(U=LSD)xn>EIHo6Xjc9#2H7nnJh zPM^0WF|Es2#v}vib}*Z}EK+5Yhix9XQHDL1(23(1Tu|QXgK&8+=7nF`XJ(}?CS@{@ z$CrB0VDTEfT`bizFE|srzl-gH&KzX2EV+uAtJ}AN!DUxSt~@5$T-gRMR6JIU%K$@F z_IRZn?lby)UbsqVl~fl}$p^shy`@Y8wlML+Fk+`;tg;c_3GywPgciJ{Nn{rTBbs0;sQe zAB0{Bj(FKHuavsO8z)I#(8xFNL*IMzhQ&QrqA8w#xsVDqpY7>v6;)^5+tao?RYEy2Iqvx3LP)jgkF?7G0^D}7gC7MC~s z@w^HqRY0>;q|&3PLmKmXr3|_8yH&{K49R!&Mmd02v5V%$j^CRg$mgTH-h)t! zGV}Ue+*S-V>+>-;^A0Sn!TX5JO5t3L4J(Gz_@IQsJr!lr6a%DsT^^p=C9%D-NA=+8 zU=9GG4{g|G@Tp!4oCUfkR2;kJSI3enAA= z-PJZ|_MPjD&}q87{D>?2pId^XZ8m1u+Uc!0*pl?#M%(!?ZZ^6Md9p8%0FDFP@sd}* zkncF()#P&3d!X*Ky@qM#6XpS%<16DZY2~6)Ue>hMz%~L4+DY*~307rgW`k;TrFx|* zufcm63@FJp6XqdkX_pr>!j%k!TQW4fZLdB%LX4*vkwNU#1egs z#Y5LhV`j|qj=@*!W3Gimm;tT=ZcuU_H*y2iD-2@>`8IE49_Sgnuxoe|KtP3y`wThI zd@$f8Xb>}`;WQ^D!ho;0F}cno8(B7!TwWLeOomAS3ForbcG6}qI}!&2eixRF$AeyP z94PN&Bj$Pe4zEj+*v5gWY~cH~n+6udnRc-$++&-&!8c^qTk@SSyf|Y8>C)E^SP$)z zwz9JL4Ys5`_j<>EwaZ}edD48@^KaVt$gFc6WAott5&y(PW&0Ak%6wHDvRPT}L!Q!& zhhXG+JieBk3b;kh=DsG-z=anN+me}_2eI0LFcCo4V_t|ry>ZK~VnZoYQ!jva@xj?4 z6-wab>VbmnAas7Y=^zYQUpI_-99lHs8JiB74&oHYp)O#`@M6;#B*nYe16|-6CV7mW z;>~y>xG4DN5)5n_@IG(Q<+6kL3OL|145ZeA)7!_ELA@6BobuoPZpTPDru=hXL zIo0WOyx`dGILVP=f6smkSl3U69RSbSF0l2tzGuA@_S@%J-UYk(X%-H9;@6rdfUWug zSp6RjcIMZaT1?5tXN+r&Simc*3|(=XiA*xb2j6|A9lE?TO&JY;(l*j_6^O5(AxfgJjN zBBexr?*jo~odN<{+uH&26)~_Cc7uc6U}iVi*$tRFF_5hl%}k5?q&Z6?UzgU7N_R&0yDJw#oov^n(VOk+|$2>vtgwzYRrwI#Sr4 zG`1&>?MY>OP|oy#hSe`+Mt*|=Ill=x^f3@z{(7X7#V!rRzd2Q5*JQJ6EbN*%b`47N z1~l+~De9{tNc)wfEnVKyiaR=1G!REEvnz@1g6S`j?ZUKS0fg{}XOY-%nZIPnidMLT zUBzDEgb!<$V7f$7x}vZv64(`5s7XM;erTIm2|q~GLX;M!5ivr(ixo0;?#z>_YZZ2J61!LnHAN7?zgI=Rjg?VRsVj0(GP_7& z7^0ApfQIDXOVfN4D`YCEu`PjZQy7LQp**00_`^bSbocl=Rzh_Jv@UGzQCN2h>()Y) zGA^Kl_!q=9@K>UNLv3Pa0k+-20vRlTWvc^-;tx$cE;G7`zl0`+94i_Cp1Gm9y_GiK zGy<=!m%^uawl$w^b+WB_Y%6A*6hM4`kd+-H>x*z%J>|Egu`N!vC6#T#^0NbWT^IQJ zuGI%ExxmQ#JiL5_F16+5fKAo_(028eC)9&Z8;jV+RJO5@ZA6)s0Yv^sonmBu7A~_B zD`Q0iZpqTtrr9~!?3@&Kj)$FtN2UjK@c;ZV;7pjb3+eVL$O$hU@(SD|u)`yr?qnMj zw!y(RVAjb2^audm4}gTDuJjXtoX~GJ^r2rmdHAT&FgJE3ur4#}va>F{Tb`mTNIBcid*DfQ`h6sNdcoKA~zD$8AN;- zEu!qi`bu2(Ujcwa^D|SqFsrQvpRFNWwm=X$|(t; z8v&@!0WoskiIpR+=ZusyEN3L2ff8!{n*RVPw>-K!-X;k!Qd%3A&H*RX9dlZnYnLo2 zU%srfb#-S0_$CM)fHqz=a8>520jn@~nP2lNAPq~47Wo#5ge5MNP`zwX=OS=fvbME_ zAhjiBWyVVL%Jh|Ze3D;tEFfj%M+dvahWi4%RBU3t)Ivt&fomhT?Uvn-X zrNoqfLn{xHWk)##qI5?>hod9D181(0e)KH>GZNg6VN(NY5E^i=_dJu}Jk()6oo#TP zo^d)&)PCKcz_|QqZ|1LsPh=63WBHWQ_V&g#b*=L~(&9mj6BifIHWII2cP@}UI9k>} z!ew>NnNy=T35i&gy(ndoXAw?pjegD7fHZDyw1`*3MMS8hZ3%2>?%9YLd0)X1-B{W< zxY65)=P37U{t2Y)VbSOKd-ypzb-5j|C=0mF=+Jy#-n{gAx${uUNWbp1K-+j2Uf-|a zW-WRMt*@B_u(BuAPpG%nr_^J8kMwJP3-tYp;l*B#C^oEN#GHw9taDQ4XvH+Y1-%q| zDXQ4;x`}nxx|BMtnC`0}R>>EmiVd4Rakh1K%51He?yMlT*b7m`ifbp9Y~V;W_8ThVruVnu#^m8h4FWR`*yCTlSfVvVfd8>-dI>s_A9Z zt<&ApvFv#NQtiCjM%(c7KHW>%y7H0JCQq|Y%bbRVNBMQ<1+jJYR77Efv#c(zwpOQB zW4Q@_bWs2oJ1S<6;FF>p!lc#!R{WIG698UuYROdV)P7U7%S9gry;ju|v888M%$zc2 zigk*63YMMdM=u3XHnx=>k14CSQsuNtYh_j?7PlB{r8Iep0+tnsT=S*zHRIE!+f2K` zV#TMf2mAgO;~B;#?lOI-cBqTg26e7F9T3^ZsD)~-nx;Bc6;RQ>Hhg4w)9|9K z(K*c7U-`~yGsJ`C!l!^Z__%3|<5tH-j@8C&$El7oqtVgdVYGj$erkW-evfj6eW$(4 zK40UC>kMm&b(l5R znq)O8W0V}r&z4UuZ(CjjOv3w>KP-1DcKK8Je)&1eb%0{9#j+m0r`!rC1`7a{aIU4s zQf?V<83q^zS(apr-C{8RV*bYbFF-K(yZIUOBjyLpcbRVjB*Go$fO!*mdFV7R0TjX$ z!P5Gk z7cB2=KtDtIqY#H%OKWah1RJaJN20!zQix7$z|BV(7ic}v(B69bO7OIk`=r(gvqBA)OOCoxQ0~l7n%yTja$1TU3CxrnBt2x5NF$fEltwOViOUv869nf9 zakk$D_lw}fwb_Kuwye-m>sG;u>s85_FrLkDMd+xqN2~tUWi8g1up5CxsMe)TZLQF4 z+B=h~jPaqI1NsZDCyi?Z;=9nH{vQkOUBQvZT0Cw42SwU`g6)pzH7(1Rf)g6(FJFiC zLh6@8+sHd59Qrcmkk)hI&=(=u1IULko^QZl;|``;X;8s%Y;T=kaKxm8YPY^IzyI8P9(niq`fG&a=ZOCX+DAWVAuQo~5TJ1D1S~PZ4-qYcc zJHoEebq31CSr4kYV~C3c4gw%2kUQwY@N*6VYfWr}LF2HvUSiN_(zJE{piHXW)&+}} zttbGyL29ih;lunyt^WC|be!6PzZAwl6~-S4;}3`N2gCR=J-q3oFn(VcKQfHhTAj{o ze4r=YczYP1(Zj17dw9dn9$vY&hnHW|c^G|(+T^!#KJf9OW=kv9+b=C&XHtF$F`tB( z?htdX&Ln>kV&2u6M0W$qq8HahLon+E;*@(Pq?LrkJH8^<#FBJlWttq z!>hOT@bdK*B~8M!fbk|im^3xEG&I9w3K&wrJ9N@Anl*BMCX)E5Mjq720gc?LkpV;! zw48B|P%Q3{MzjKP04WDkP+U+W02_xffMY{atC3+E$HR)3D1Q&TiAFx<<*YyIA=7(DJ*2#Lv}ePdvyOH|`A3Yn(EVR|74h>U9t|4X zI$PV9fj`+*&|`AeWhmo9$F=8!6)T%ywGo~*bIuGC8~N;DdiSV@lviR7g&r$%)*khc z>7PeEq`Vw;M^1SxI$>s1Lh^(3#12oo@Tn1oz3IlIJ^AK*r#-U46LW5nU~}H;VIL8! z^`{>88No`+aLnTq60V2Z21dm4ah&3@<|bQh4{!ZC^fYAuQgAN{?yrK|Cphs|W#22( z_6Tmf;KciteItI1EN9m<=L7IwUF3KhklQNZjrpLx!(M3n6tLABY%V}a4_eDCzgup# zG+C0&kDJdlPlWfv-FyyDh4uFM?g&C~5 zPjT}~Zo*ftQhfQELvKR05Tyl!fvE!%2c`_f!=nP4r9ONHgD1E-KanI%%!n~Lt`*KCmjn94(Rs%F-COUONFso z$-gWz1p(c*KgP(Imr!oBE>22FLQ)veE%{>%aQS4)+p?^qp`!)-!zLvlJ0hSN?#DWJ z<&)ewG0t5>HgN&XXg}5_j!%SAz1qZO1vE2#ZnvXpQcqLa`GkxS>?ih9RzS1H?If zL#$Lue69Z^Y4pVxR@hHrR`I;bF z6(nPAT>51%#j%&H>?Id_3G1gKpqY?E`>d3WzQwE=TOM> zfMzW&Wk;H@Lxp-Ggfur%rGzwVZo(xrg*}_ao=sxU_G8cDk+A{Ig1nava#>o%tQ4#2 z>}dyk+ROk;=;<>cwI-mMkxLno&h0^wep*qji|893#I`UEy9YKuJek9uw6G^#?8!4A zXGuV_E|+p+_S;8$iQysNTVoq8rIA zB!n$pYSk0H4F>Dz@dEaEI(vK|dmQCX44{!Y$W6$Pl$*daLUM&Hs^cT^?1&R~ud*Xh zetH0{&Y^g0gQZjP)@AgP2rp>;Wfx z05gsWXh!i;lqE3?o&=H>Htg=Vv-{2LejB?V6Uzf=5D#@zkP&??@l+Bg5BQjm-+bY9 zXZig3S~t2cjooKu_ocG?Fhfm1GlZ80#LVw;JyM{<(UcnMmtphk0S`Nnzz$@w11N5M zK(mgQl452ymk>v7PjmdePIj-A-RofYYPx7P@=|6@Ydb@A(Y^w{tRAiN?9XBQEo^@r z+Yc24TU^j+9x5n5X0CT=x-41%A7C2bZLqaNpY88XVt1R_-HGh(7C2ZQKx283kQ>uo z>?DD@9^7tLF6$IGK$tf6rLui?wl9V4!wk~`n*BU%bck*!8%bHx+6t!TZSd|*^@~x8 zY3+4aKXz9lyDO93g$K$5Xi5(%rA2S%0fY0Fe0Hme-I~a5#S%3E&AeVpixF!gvHy)YE4#(TZo!au$wTo zG?1rBNr^-jg1N#Vq-cEzv+En-Z%k%4#<3fd*o~No{{LDHud@F?p~3%8`vUmC!;a_o z{?GVYI5r&o|CfFZdQkdpyZ+yKg7}~Dp3w85O4?zza>AQ6TR7p(n$4W>X2IHXFXC+i zM&=Dfjhygi%_=9nS+jv(OX&*VLsaIwiAww$qF^?Kl>fo6Ci*)kyjlJmzmnp=a>ASC zzwj$4{xiRv=)XDP&w|$i!k^_oa>6U-Kk)5z{CiG#wER0xc(nXmPI$E7cardE`PaOg z@_ogFM8D(#qF-=7(a$;I8}rZjR*HYhw-Eh=6MilK7bpB$@R+cf(m&$o5&e)8el7oi z6MijxL)=K|@9}epzRNcd{U`4t`VJ@jTK+aao8oVA!mkC-m}gP^4NmyA{B?dN#b4uV ziT;BV{xNvWtfct0yn^T+UQTp3FC%&lFD1H*6Rs`4n!`#d)b~}KaBcaOd=kZX@`*&R z;1h^m&c_qIjE^I_gO4S8DIY_0J6J@aoJ%<2;qr?);o@P#P%ej;2GEVrr;NjFx@itC4 zynG3Vtx=F~v4#iD7wNd~3puCs1v>uwd~T$8D_4oOfHzbu*US~7O7nD2N%d`5a4cwR+1*YrKn zdee7A=a{}FT4(x(=xo#1L~8*F8uQNrJ36E@Vb2)S879I9<~63zC_Y`ojpx&JKMU2m zpM@&$#e?~$nm!^r#q=T3O4A2KD*&ArkC&U?BU)y9muM;YhQ)L*c=AD7VtSkCWYb$j zCz;+PI??n7(FuSUjrqodM_HufO#dJ{7WN5Ze2nSuL`R!mAv((RGSQKymxzu4KeU){ zxakF=!(g8r#*4v=5YnNhXNeY>o*`OjdYb4E@Lr3@2b-QGItW%BFkWDKoajK!p9J*& z$0*)k^D6ThK`f|y6H^H{~92TgIw4dxti$T`58oC;j4(g%vTb9iFXoxk#`V% zfwvQVo}W(iIlhAEvwS(xXZSLrPxGZjpW}!OVyGZ-to; z>0e;xLwXC$d`NHR(}~^$GatrpePC9i z_JLW6+6QJOY9E-DsC{5oqV|DViP{HdC2Aj-m8gASR-*QSS&7;QW+iGLn3bq~U{<2` zfmw;#2WBN|ADES>ePC9i_JLW6+6QJOY9E-DsC{5oqV|DViP{HdC2Aj-m8gASR-*QS zS&7;QW+iGLn3bq~U{<2`fmw;#2WBN|ADES>ePC9i_JLW6+6QJOY9E-DsC{5o(%R=b zQzf;_wYq*B%(V_6Nz47nn3h&(|Dqn zfe&+R_Z{GO4(X+)F+{hUMiae6_fv4OX(YujGL0a*4LqM?{%+l0K@hywVLYJwEAX3& zD1M=-kmy$3f58^;myY=^(ES*kZz`bpX5F8`dAdJ?O{V^oey%B>=tkYI!8y8LgAJw} zO7GJB8~98fil43fIaqJ%NAa_Ce+TPye+Os6w+uZ0T2ngFHM-w})$k68>1XKv4_1Lk zcZ{zzB@yj3CE|A)H)~g%iyZGcPPV^jpJBVlHq3gdf1N6$HBMs;~r=_zw&&8;i1Jf*I(c9x!0SyMOX_{z%qQ);Tq5Pta- z3UDQ%aL(M?+F5n=MdgvPvQd@e$|^<-A6+q`a%9=4igCk7RgNtkIihULxUs{F%SLu3 zWQ1vzL0ZkbaQa`)T31+d;+&iZ9$q}-&uFD1Ll;$%RwCA?R!Ql)R%wIzjC9g!>HWhl zd-;zuODZ$3TD5ve)1T3*w4$P}rg~1OvU;L@=_P;3x|CF1HB%a&kxHtavi;hO7q7@H znNn18>ymr-AFFDmbE=^EDC|p-E^~^mg*}VUNFgm+G7pc=pZiP6^bbFrvnlYxF={cj zW>#5g&77ig!Stz%Jx$joE|XuU8vJw>*&2&WBb&{ znXK!Rkk4l%lRl@tf6Ax}eyu90`04J=?=AfL817hg4~kX>;G~t|M<;g)M(1wlfdAbhY6O(b1rJvB4?DS3Cv z?6ITw4nNR+th!*mR8j3z^{quhm=+17#n~UGUHjQx-Qjq^ zcwGyelH*B>ap#Pq)luX@JwBdcoryQeJl`{cz0{U)<_Nj^F(lt?2_zV|mQri6Twq-+#O1!U?{XHpv z@G)vqQC(M5MM2*>IKy;sk`AYCtGQ}&1uvP^f7ExkUey0j=unP2l=rEF;?Q-#G2<1iP*U_Ex*5#e=8K^4|7sNz?O>Z+Z5X zGyjAZg|lkwt7pxGi66D;iS?;frcKu>djtSHl2%KU{`rObzbTo%{D|YnPd5J*vhoGpwZFyfI(%q}5|eW|)7KE6#fB&*(R8R++9AaeZo| zT6As98GMF?wCPCNv{uf$vZVGY)^GS%UmUYGWpk&ZDn$C!Bgw4mfe%<_(qqPJ>g65# z3QNjYy+ZSRag17(mCk`@3O(%WRYo=FTHx3+kQSW_&)fUTjI&El=~sTw2m5|GMlDL~ z>Pk;6D%VM$wV^6udMKpFvK?={KIZW&N~U{0-#>d^<)6}{O4H-Nc*c^$T16&3R!r#H zKU1Ar((vx)ANKWs|5){yTMut4r4;sA8;O$DOs~B-(~uG`l@-08mUc_YqIGYb@#Qbq zAFC4BC_R0YDy1jdmsO-u1t;v?v=1|XE` zxYNkhjfO7_^~wW^2mJP}k}qa&u)5yf`jy4n`#nCkjioDXPW3Ll?)Aq?n&Q@;`IzVa zW4zKi^>yH5s;E3f`?|KSlreh4<0LwUG^xAv&aqEDH?XAs+*5bAZyNfiH0h~jO{1Q8 zUz!2j;}orqk_PY@qe!#*r@MY{Z=6z6^Ugnydu;1B$EaBy_&lquD}yIn=$R3bzI5s` zjnr!k+ifK2bn5YcTyfm+i6!%1`RLV$p1$Ny=~PsusRPqkUlW*lw5|!h)Q=`jRt%rI z_T!fpm(*Rga8$?H^~b77z@tt)A`UQals3@6<-Z!fypF*>hgj&s7B`R}y+ zIo+UJSC-BQ^`pX2v`@WKhJ}s0VWd~}3*$1OGnLd_()erVNyj?z>s2IPD5K+jYL-x} zYle>v#iZHPOQ!x(T7Oze={@%@>^|`PpR2LTy1H5LBBkr4$NJPt8meoBua`qft6Jrp zvXYWJN~S$p|K54IE00mD+T*7dRZ-BV4sk`g4mcwfkq(m^KY3-3v!!H?)Uwf$l78$u z^h}JPOHZUvo$Q6WPWVBskaY4bochrZnSYcVf8L7S1zQsTgibRmE2>M2%26Yo?NcA~ z5M3Xfmxho&%Rjwv!^oT|B{PfLZkzjX*D>lN-Z=%+r!J6&2g9YmUR{(Zn@*Zh`La?8905|%TZ*kPpzy2b*=D~ zdmw2wCq4JleSfu;)DK(x)Xbl@9-~$@r8B3_rJF_%*S9tU!n7Gc+V~#w-Vpe;sig6Y zhh9C)aI7D1gbw9BT%X!x^w+h?8pdbzCv9d|ZS$H9TS{hMc=DBZZ?^x*y6Kr`LR$5t z^r@XQU)K&lo#&Hw^_4phl^dNU4R&kSqzz?%LOZy9&8(kNM70&-`_xFv(>20TmPZ=3 zzxi$JUmyRaq~rb6vd`YX{1`RD&*oJW^sPf~m=3w5!}ixRDhl!*D4FlO>F#OI@jszM zIeowHQwM8~t^z|~#j2b7o8B=7&_rlFr4yAFlNmDa(BKTt&H`qU;aTh|8f zn%SgH_mG5*rDX?8=FI;fZb9*}E+U`~Vkt8s(zi~YFr7T4Q{$QLSDrihnUdp<`{L(* zlW+SIH6$LrP$v=TQzvUySgU1`POE;tcSlp>_a(E3AHT%&&a^+FleWl#3jLSM9ZEl4 z8~lXTkF@E$`m~o?>Kk z@yxvDt(P8Sosbr^{@wQ{eSH6)0RBCkk2ueF);jHuXB=lc#@WBJ-)Ns_A7uO7w$HZG zHp%)kpw^vdt+ARdPgu5DDlE)=0Cv4+^VfJcuY+Bj2Vn=*B;!xU+W`-5i2A8|joPB- z8QuXG6sH=JlqZ$V3IKb{_sWaq!O{oPrPA@Rci^vZTKE|o)bRAp36aJlQUdRC^Rq2r zk{>b}QQ6JuWJ3X=4Cz%t4NE`PhcNeH(Fijo$RB11sq@aeeAM09`uXpp)EeI?N z_Gckm&Rn)*DBDp$p&gG+4{F%@=9Eag6)B0Ih2`hBH7@8VMZkj^Lh1rnr(hg21yjK} zFWcc^JKPl7FlTvC!`3%Pc{heCUWd{E`IcnOAs`I&O^o0PD!Vk5U7Adx6|zhWBD_Ah zi%p8Oegd7&L@9`0wi4{7hK)v(mmIdeh;1KCAsw0?M5KN6HXCWp1;y85ar8I|Sk>J)Zye|B*$g+@H= z4I=n{uOe2Vh}cU}*~N+M;y4ObJUlh1!R?zRK@D@?9OWSbBz2;s746GAmjiqd39Hp3C}&$bf!#x>V4mWjhP!XJ zlYy)NQ;_Vu1LaWp>iN~nT3T1DtlQ1H0oXG+OERai~0h+yYd=OFhv3#WAAynsbEZ?c2N|MQ;iv`kIAdx}^ z4@?ar%sv#(jpZG6z1VCNpr$yIgTc|EEA5F{RPcCZP{YzUr$ic0LR~H<8EEK6ouixpQRZOWBU#yn z9(JLdLK!FRvY-a3Z;rB?gvwZiax^HEFhN)$Znm|EZ7rY>GkAlDrVkZT5YxF9hAKo8 z6xO%4j$#+u+17O3i$YLC((k2jEpYQwqx+VTZH{M~Z4}b6nL!Ok-<%a`eGK(6AIrnM zT?cbddy6*zh%OSkr5f3Jx$L|Q3eAwYeR5F4)iCP-cvvCKNP(Wn0_Km>YzVZA@bu<0(`zOHEJ%*f(d50j=ma zG^;kE7((4B2k$c#Gw0~@Q6>5gs)tG4BN^E_IqaNt3JsWbN>IbuHy6ZI?>rO-1E;lp zeq(bhO^R5}BZlMc)W|lt*#>Yc0ilAKDgqkZzBwh*P#fB*fi4f91$uPS9}SGGE1h*E zQz+x3L1{pP*f*y{+7H7xI1R;gv;Y=-j~D`mAHaO$m~Rw?9dOg09zcYBoMVSZ&kLu9 zhC$REixMjuN^7e<5_rT)WSdi%FQ55vmKYV#@b=AVk&YSQ!cKAXH;%B8q51XX-7XqRD4vpXG*s1(U}I5MUpQ zCPbY*fuDdyJKCEgbsxNL+`2LFFT;@$0YuKn!jb1SC-CF-^M+39SvPQ9fB1)UdILIA zeqok|hSh_IbzG>`nwPIw(?Czr!uDHUm%rY*uHQPXsSq_EFF2;D=DK;U1>8cwz@Vn$ zXU3grgMSs%CI%2TAIilxRXvuAZK~Y0!`BXle*+#G9YFYeC=U12sCu45rv(&6@C8BV zOMF94V(bOP?r z%H~ep1(%)(uRHm1LzSVfp#+8>Kp1`iB8ci(U=cr^aN<_3Tog5em7>HVS5ZO{9`Obc zhaZYZ%>ht+8WqP`Y-Ky3l|u&35 z);!BU0eybHrN8+D^UdbP=E3|Euw_3T?D@U}TaR|r1mo|<`;6<2L)G`yJ@5q}-|)U+ zk72%{K>1v`MOmU`%kRlo1D1b+^tiN18V^`$ci@Q0q(;0 zx%mOQs3;(ZIQ8Tl_2hmO;x$hVYM^rxVthrab3p%qf!eh8uFOelqk6JaJsFj*2qHKg zC=>hObg!H5qgSxlL7*Crq#BOIQHXcL@T(~@HFsg>fk`0f= zQK(>s(jbD|#a0Zo_I?ziVf{pmM%D0WlHt)f3S~S#A&4+|AS3F#1yt_cCj<|7*(R_7QFry34pBTo(@ zlpg4j8}k}?mz(bu_1e}7_&oSpt~6vT4Ji~_u|_8c5or$uM0vf0%D6LJKxmw+%4u23 zX{i*F^l?E1;=`JVga`rwcc1`#{>D>dZ&yyuP)<#y(2VKhg9yijig$nm*eR76!a;k!%38hXBBCsD6j;*&_u`pu$;P;Q7 zv!9f$oRp$qXvBk)gEKS%vGw+sZ~;9UoS3DYn5tl?qJW9P8cje}Ov~MZ0sxMtHT?W1 zWGN@4C>R>>(8M5O2EqkILES;M-`rEY=j_L4D#xcP7%EtNau5Lpp*TFXAcbG;!8U>4 zMC!u_(#R2@9G9*fmr9}bnH2E`K|qxAP#6F=q5yjI07xhr1W}(!mAUUwW-(`gU#jBnW)ZhlqDN%|i@oU`t zN_YniyKIwuS+aatJcR~4GBK#(44UI2+f0h%yR_1gjpmSdWXL>%f;yw(xoFdV6T^cnSSXN z^r{wq=|jOKQ?X4h#!H_R)Bpi{`AW6J&9_;io=pw1oFvOm3XOPdVsH#7(CZ9%sa`(p z`P3jwNwVakP{oJTaX}6C58pFU4E%;(?YCob_`2EDs(EV$@9v2*b5dx)bZ=0D`0M4{ z{3TR2<`a-X`XfR5!$qNjHdLVIMliI;xMm453-As#OaBCa1a9=xYVJ%DV}8?Q99GBvllBGd(B=~p>N z`pqT%h7C9%sKNS~?Fm?W;a}pr-F&m9sHjMlo-j#Im@9)CVqY%{D?!W|dIg#vskJIS z?vWl(rI2HuF+mNyua`;-pd3+Ys&ph>I+8*meF5|aHJrX)TFj3n@tGj{finfwf+|S2zw!l2t6`Hi+MCldNftSkna0s!6ACLjhgC`_*N97-S?w~Jd!Crk}6?H zcmHug4WX}>&bx(lXNuVM1_a??K_i_%w}qulhRL;a*fDHLM189~J6!yXuO)88E31M8~iV}EPF#|Z6J zjPAP9LFsepA(!+J9;^szpnSc&V4R1`wxKQ-Rk7@jEOtjKg?bOu!1#LUVVh7)PY+|a zr?cBrDAaqH2EW%!4?7o2_R_=HZ5iygR0{PTreW{(at#|%#8G+}yETj5no6PG!*Y+- z!_Gl5z4kEnmrVATR0{PTmZJ-anI1QgE@3^4-Qs4qq)@nuN+quG-^>gDPj)nd5c&}kT~e5TwCUiQ)f@&5{Wwwx%vByE$*BqyBo z|GS^c?i8&GVplAGbo1|yx?*XbpKG4)rchh4?ADiIV^=JHKsgaBmgd&}=2m$|x4!He zyJGo07Qx>9pH?hYb4#ANC6hwTThfh-uQ1wh#WM1R^E-EP8I3MoX3wgUxydrl-0UE^mb3Ndv;H?F(lV^7Sh`;DUwDnJ#V_3a{g_(h zS9|!?=@e=!bKUxKYwXJ0=UBe4l{uAPmBX(}r%+p&>&E3*e29vy4|ojuOcz)azA~rs zEBo;)(lV!k)_Esdi@?h1$wox4!fmyE69)7ROn$x0N}S zUy;kNNT*PnJG=F@*Vw!Bzfe%`D|0HpJeyyhPNB9k*Nv;MP#>`?b04Fa|GYA%^2@UM zWoZ;@D|6lYN^C()^?ronpp*8xGN)93qA(EAb~G% zQAq1^72WzeY;33bCyIc}=w*E_p3l$c^ZQXqYjhL4_4U`-Z!zzn7+A6iTcb1ZR#^6S zQAq1_lY{!IYwWj}x3PH43Q|08@$i;@6yhqFz2fP_-%ih-OcoW~sn_Zl44da46i>o+x;5YOp^@f}OJ$%K^!22cgeohK$ z)y^C2SzwJS`#P5Gtr0U5c&3YENGo^agZd(C?49K`I(^v6oq@ZPxZ6n~t=>%z>dULK zb^i}6+)LeOcz8xXj-gifp+(ln?;cS1uj*&-srz&fPw&Sugu1T^o}rB+SjCGPM}Lo~ z`(9V^cp5*Mr@MGM-ByCQ>}};0H-9nqwjyP6DTQOG;LW)*sIR%kZh(0i%i}|L zFB@P~&eAzcrcmDiqp!h6t)sx*^(E4Sw$DUufKg335_CI@jP7Umb+024XC zyeR601ob?sn0|x(qQ5&#ziYLjugJ#M#tUx#R7`CckE9rn#8GI}YC~U?jf>j;633sX z^0*UeAbd?J7^rP2!a}g|vOqOHmTP=0-uPI8@iDczX?zfuX|Yve9-*H@IpM2zs`1fe zZYpku-kYzjzSrQObX(vEC`7jBhba4Mj==>;*+Xsd^o}Qa2$njaB5IrkBwbL zdJ10kXi=+9d!U8yyOE+~<3pzJjfb4ZLzrz+P+N-arJq0P=0|X%4X+NfaeumTe*!$9gJy*v$`xc`AxCZb>t4Num&+*QN%Ww3Em7ze9NP z|LCg7cmbf)ZE+g6kfWktqozYzq&pm#-yU-FgW>DMk>4s*V~yKblR_a*rqhG-G?hlg z%>4&JC7i{eB5-Z>C@a0jX~qr4=?TW^n6)g}psN+L@cf{g|1Dgtp3f)o#$9~5xj@^zO4!>igW36L_ zW4_}QN1da}G1)QFG05R@Bs**l+5VIL3;X-_*X+;PAGJSVztg@K_7_}izrgOZud=tn zPJY&kUs*r2zF~dAdc^uS>ptsE)?L=^)~(hJ*45T!))wnY z)>`Wn>qP5tFwE;`O|)99%<_ZfGt0Y{S1r$24qNWC+-|wvvJ)&EHe1$PIxUMW^DM_% zYAj`zv6doBo+aJlvKY<3n!hoBY<|o9lKBbqLGym|E#}?k9cI6Iqj@dZM9epzVy-h+ znJ1e^ng^LZ=47)C+{pdJzW}uJ*Z6aQr|tTj$CPBacT4m9>NCK@e9 zrv9LQroOAbsy?G0R_{}9SFcxhs@v4fD(s3=7pwEsQaq{Uk%?F zJ~q5%cnSPF9yIJX++x^m*kSM+HX7C%R={qLQw(*6D#K*MNW&n5$B=BW8D!-rCA7q=-q@1A4R4SD5O0m*kaVzl(mw%VPbN=A`%=xbK zRrwS79r+dcDfy6mFZ!^=ehb~Uo%-)Jp%lw5!Cfu5s{}`0#;L?kC`+4p-Xk+xoNX9;ed;La4>TEVRm+-kv*qkEFPN~En6T&LhV1lKOO(*?Ie zaLWa^OmIsD*Cx0nf?F)OMS@!>xCMfnFSu60wFs_Ra7}`16x=+)H3;rB!JR6&Qv`Ri z;7$_UiGn*paK{VoIKj;oT)p7t2(C_WvjtZxxLJamDYzMes}bCE!A%ofwcx4*H&t*` z1Xn4z3c-~Nu1s*Hg7XTlL~xS@H%V|41vf!(;{`WPaAO5GMsTAAH%f3L1vf%)!v!}? zaK(ZfD!3xS6$);M;06nBkl+dgH&Ac`1lM11`GU(6T(0191eYy1kKnQd*H3Vnf^!Ql zLvZPWOA}nG;8FyaEVv}WB?>M!Tl(>9|ZTk;Jy>ww}Sgda9<1V zE5Us!xGx0vir`)r+zWzxUU1I|?peV-BeL_UE4Uj3w?}Zh1-DCZR|{^Z;I0tdWrEuwxJv|gk>IuoE-1JQ z1-DgjTLgE3;5G^FT)~|qxDA5y3GQsctrOgtf?FfF)q-0oxK6>f3+{BmEf?G}!7UNo zV!aVIgm z#nBAGi93loO{Ap?PTWb%Ng^##aPfkR6P!zMPQf_@XA_)Na2COdJA~OJ(!?FYtcWx@ z#PNR%PR!K&dy)2?;KWSLzY%F)3+^kyeJQvv1oxTXJ{8>mVed_#qbj!l-*dW8cdAa0 zNq_`MLw5)eAc2H=ro)VYARyux0!c_9Bq4)<%C&UExR zo^VFR`R&?!r;>CN|LgzW{k^x|TK_bu{!%Xh2q zI^UJPt-d&1J2=gEim%aE?OO&)1xNel`DVfugmJ#%zCpfRU&PnVm+tfWTyP!XXYaS( z&q2Fjif6oM1gs6%4@mz#|^6-9JIf)zpy{F-?m?YYXDE#d+dAdf7&(uCw&R zcs9f@unyaoaJAqa@v3-U>=loQ`(PD@TVOS_E5yZOGpzcxUYsl%V0El=Q4CiOju3~5 zNn)%RCI*VWA`EvM(u4hui~edfb?DHLT;a1=iL% z1J=7)18bcuhxJE}gEc`8hjluluy)2^SkEE{)|lv$5=ap#CR|te!M)%8vHM;3Ywj1^ zPrDy=-w#(8ZgpShzS6zb9f#{~r@2pYH^McBW$wl9quuk|Gu@Nj-+~J6t!x+alXs7rM@KZFI$4Yh87&74Y`R z@o?>7j%&KB$TiwE#Fgjj?dswE!26c>W$$y|C%q5DHK9AaH+iq|Zu4H~JmT z;JM3lo9BACR&kpMgJ+%RL{E*U!cziQjOP1Sxia9ohjclt->d`HSJo%id)DjL zi*WVhG3x>AF6%bydTYCNiPdbK4c9={StnXGR)tk!9b?V6W?56Q7p@vXRSV^cNtRO5W zR1zu(d4vIk{)B#nTtZ($A3|?J4xtwzn-C#{2|Wot2q8iip*x`)p(`PikU{7|=uGHD zNGGHbQVBsqfZ!+i2wsARU=t)k5K;(kf{OqnS&dJ4qF%v4FbM`i{6+Ya@CV^{!f%9M z3BM2y5`HH9MEH?#fbaw1d%|~wZwcQJz9xJ{*iZP9@CD&>!e@j}37-%?CVWKrknjQF zeZoG%dxUoh?-1T5yhV7E@CM;^!fS+A39k@dCcH%W58*|^3xwwh|0X;~c$V-C;a`NO z33~}o5uPMGL3o_-7~xUEBZNJKhY1f69waA1w-9b7+(fvMa0B6b!gYje2|Eba5Uy6p5?2wn6Rsp&LAac-jc^&^Qo<#K zt%QpS7ZENbY$04gXePu7n+fL=&Lf;lIEQdH;Vi z3I8ChBb-7wnQ#(eEny8|HQ_`;BcXv%PpBiTBGeLU2-Sp@get-c!g4|-p@OiCP);Z# zloFN_mJmt^iwVVq69~r>jw2jPIEHXEVG-dd!a~B4gaw58gn5J`2y+Q@2!|796J`-+ z5)M-cNvujpVpZVbPV&U6gd|oaB(W+XiB$!UV#2!Z^ZM!WhD6!YIN>!U)1}!Z5;6!Vtn>LLs4mFo-aa zkgt#>uqs&stCA(KDp>-n0`E!FE?AW;fmO*8Sd}b+Rml=ql`Mf($r4zVEP++Y5?GZi zfmO*8Sd}b+Rml=ql`Mf($r4zVEP++Y5?GZifmO*8Sd}b+Rml=ql`Mf($r4zVEWuUD zqv8%A^e6NqDPbJSFAwcjGd;~ASL$C>wAP6Z0H^D`)2u^~7U=j>O%3p*(34aiNC;UeEmGBGU zAmL}iPlO){2M9k9z9)P~_?GYu;cLQIg#Cms311LCCwxZul<*1RW5P#-4+$R--Y4uM zyhnJK@DAZ^h3+YD5#F@DFPrB%#~M}^{5J7gmh*S#0eE8nBlu7`wiYI z_yuyWm&+ z4zUgH{GTH>h*RJNQ%{BmEAGRt)etfe^?*0aomU+!5col?B;Jizbn z1Ms{3BX}aBkK9AudF~u{7CbrNbz83AT?gRVfsb5o!*BU#;pu?~ zT)SMixOTuV`7N$ZfT^2lHaKPFhSOagQRKOD`i$IrhdLSAYY2{dN!&3*(T93o; z?p^TQ!47MiwZ%FIes!PX+w0ro+wI#4PnK+l>qDD;o8Z}!HNIM31za6k!Tg>18!^(EIi5L=IhHwwIhr|&Ig&YoIh;9+Ig~ksIhYvc_Kfsp|31v#%p7Jf zW;Qdz3^RK&doV-HEM|9RH)dC6CNqQCg&2OA-6>2r)5Wxy-0l%>_XxLpq-7j(yN9{m z!`$v+Zuc;^dzi;*n8#_D$7z_yX_&`pn8#_D$7z_yX_&`pn8#_D$4i*UOZYu1Z}?s2 zJIuG4Z!zCwzQKH*`5N<8<}1vXnJ+Q_!+eqX0`qz1znRZ5pJhJ7{1@|S=3eGg%qN*o zFdt_=#(b3d2y+kfA?Ab32blLW?_=J}+|9g)c{lSe<}T))%zrZPVD4nz&b*CzEAtlS z&CHvaH!^QvUeCOac`b7X^BU&W%&VB&nO8EeU|!DL#=MMqDf1HMR_4XbinH!j=G1oJjm@($5%zrR>eh%~e9On5s z%=2@Y=jZUJy#FW6kC`7aKV*KuJcW5O^Cae4<{IW|=84QkW&^XHS;t((tYy|PtC=gA zRm>I4<;+TE1#=m*oLR;!WiDkdVU{o#GmDugFpp;*$2^vK4D)E_BIZ%dh0G(F3z+kn z^O#34=Q8Io4`$!(oX(uaoXVWSoXniWoX9LVfJEXGb79}vnR6$ zGsMhdc4u~Dc4cPzYYmI+2#=WvkC_OMnFx=W2#=WvkC_OMnFx=W2#=WvkC_OMnFx=W z2#=WvkC_OMnFx=W2#=WvkC_OMnFx=W2#=WvkC_OMnFx=W2#=WvkC_OMnFx=W2#=Wv zkC{lzm|l1IkS>k!Cb~HXO=NbnLH;&cutD&oD|_XDZ+D7 zgy*CPA1e_)Rw8_?MEF>V@Uar%V-l2f^nA_@q!X5MxAvruj&@Fp-{_y_rQBOk@#g&{KyxEfd=G&{>-AvxFvF^^>+o(WQoO8Fu%toyJo z@Np{d@o}Xk2XAMABwpKsL)4)vs?xdvnZ|Z6X!RdDX6SJEI8@+>I7`SS*L;XdK-E!w zNU<<$Xy2hZ@KHWv;z~OXY92|d`QUanZ>{st(6H2@-7xm(I19(YYh~>Uo-PYRa$xdn zW&R;qL%P97X-rIrwD~ zJT%^-{FbPkEF&S=!(Ots0R(21_+)y1cTlwLp6^s%KgEknCcw1l6}? zCq;RTh_mopD5=%5RP-fPHA`23loB?a-M@2xKYZNEcUqh^-y%cWOQtu=yI=2qS@3Zw?_qHke@l|umfciJ83oEurC|-!oLKWTB-{-@Ly4;G;su#g*(E^m?yeiM`&XrPr6jq}D*vxTss| z=-a=4YTxdCRei?AS^5oBbrZ_mIV98V6HBTZ6QrDFpRRp6!^fe*M#Nim-y-eeL+LxI z_$m)#>doW>n zLfMw#IH{^~$-s)N)GTETi7S~m*t=iS-Zt)CzqWpmdc9xCE)T5e*1enZ7!+3uZxAbz z6iez@N~>vLMc0h3Dn@>sgxs8=q!@x?R4%J7sTx?3**UWw%mHyF)ON^Pq~QKaJ!xP? zMtX)a^5RO54fgJyl)4-DZcuNW53K0isk5>M#FYr!Arp7u?kh_gDh5`hr=}|-FRt{~ z4w<-xdzUY*Zh*3+rKKrrNL=ZvLHFe+mBks#cHp@pA7)FX91O8iyQeCz!nhJrQ=Og^ z%K@>}%jfyEb(JT=j5Dwz*fpp;#>FEL2M*9A1q*3rf&3So)Y`7}<&w3%WNiqyw9;2R zO!1Re`jUol}dt8lw8?UuFS$M2F;9zxJi;$`uamfSLc(CSNf7wy<}Ag zx46>R)OZ%9mMlBfexCuh(Z}W7+$br<9D+u*OgTtU`Adaj2qwHfv!(o-V zu^w6kQZrSdz#ZIR7+3Q?xbt>H#I`F-?W_uD>~UZ?c&R_|2&*zscCm@r!ci5XGE{#P zW6Dqc!9KxG5Fr}OQDHIoK)b@9DuZH-JcE=OM95URhNE#ev{IVtAq)PgzX&D{vb&p2 z2!|Ae!;FqpDV?So)N2~xX+&|aSU9YbfeujHh~b74A>?QoCbW|Zi9yQEsX>RTNVdv5 z3Jn7PA}T%bHk;Hw5Cwt+`X`~3_Gj;;A_kSH~hiIN);*+gsQ(IREff1 z*4RN zerPt7AQ*9;_igGTd~ve_@$4B z=Z$zN?Vd^Nrv)R>dR@aWcPhRG);czVX?qGF-|4D+6T`tyA8as&&NYtSTw=ha3pMT( z6dQ`7Q0ItYN-@_lT|}J@V|vUH-sck8*{b|T)HK3B8AZa0r8h)oj&*|tqZ>x9F*z1C zHXE*JP{^<`@sY3@wu0f91=WJ!sL=^hhQAm>nEj0y4$OjRaGs@_7@BT|GiJt&DC`xD z#e#kS^j;8N8^V@_Q3He0h~>uE!*E#2GQ>oqD+~&eZL9~Eb8a{mjK#n*bLSe?Rgj)A z9L7HACK&&!J5}$iKLO28Rwf+LPylleIHQ}_XB$Pqr~&`6>u49Xb+nq$UaC;7KIz6} zBWyzi@KSZjH5^fu5#^xfh_KNq&2$(s^dj$AGztUPRO2xd(}pTSuo@d-Anl~`jX}%8 z298|Z%?zugP5AUv?w|_FEP%QP9Wk&i!+>K4BBZbhg*u{t0rUl!Fn0pffLG;& zWP{CywH+)773;%>aV^+Tdt2?j2ZjemhZ04hEmZ!{J+Otb5j9jX!r@KP9H9DBDfWZP z#q@k*7_LlXyGlC@VVhJth%bX(I6C@l^QaEC2O zOQjcvbRd%M1$6>af6(92%|M)|&?jaLg%m6}`Y^$86te<5TLr`5jfIr~ZDtzL7#P#J zyvkFZ&0=aV_%p+>foVbQU`$kgR?HEM!Lbvxvcn<_zMCDY{9%U?jHzIUr4qz!F$E~D z0}R*&=MBSH48iD*h0zKJqfjaEu~f@IkukCZiU9M0BNm-u7_m0#1*3Z?`REZ)W;n== zJy7?UWfp}Y5yJr=NY@G5?aGaRj!lqx3``ZO{-6on0Eiq8#*_zGHiTl{-~nx?Jk>-1 zJqKr$FgSS&2DqY_9@toRpj#bslfj6=2fjq`S<4Z|11F3Pf;&ecbHk9TF&em#gS8%$Tbj+X?1w^3@E!e_eb`B0jBdi?3-kgvc z_7E)$WoDnSYIX-488Gp?V31=0U=Jz`BnkVeoYk=dhX(lbUrbd)IW1VF)qrC$2exiQ zLK0yWBL=Op*u-RD8;&U-{EG#R%nj&>Qqn4GRUXx(Dn(1}3fVfKsq|kIENDqnwV!~Q zGnxw?VZ-dL_K3j;_Qe4kgYgbEX^O@6sAN@*)zJru!g%2RhAA`(NvIZvT_BlgR5?@{ zVQ`bLiVZGqr!-|dVro?Ep<>Y)23j8iTK3uzGfZ&ofW-n}u>s``8~7^H?#}^@8gB6k z!>~}pHf$6{!7mEALKOI;NHMHi49*Bv6o3}!n3|sXF z6Cn(3i``-H0gq02&cJR5k4O$=V745@MhtewhRStxDpDyyEgezV#Rz9ZanyH~Sk!<6 z5O*>LFgp4 z3;aPa>}o<(^#{{Z6!x61@{^DOgo0Bg6^*vc-l{0jjJZ;slEQ{*&V`hrMltY*znEc# zjScGC0T08l@`Y63Ka^Y*O~9F}zwmqmdqvghN0lxLAN<<{TgXqv zSAS6>8>Sk=$b+L+Wgg9TSV0H031kv8)`JiI!AOQE;Z4)QnI;Ngj*eo0I+Yu?aTq#y zL#2v^o1&1F1J2F#rwX0DD2n+;3!o+8n+KFH7KWr$bHFF8inV?{IATUR6x$nv@1)>@ zKMRZeLNE+=42sqSHG?8StUbz0)npISio&5DRS9Bx1yQt&Y~_NZg96YGQY`Qqxseyr zA*VH4A!}#(*t4D4@jk&EqhfnOc=vDjZFWN`w=6EneQ)JUpMN?frIS1O!K1NXfBQPW z`oXKx3|IKz;>Zub=iTvFpqn{4&3o|&dv?wFyl(i*H$}2zMb5$hG0o+R_FJ?o7kXrdUb zbsU3|N2Bib8w_=Jj+RgKPoE_AKr4mqy~d+tn-*|+Qdu5t+1irY652{3Yq5m)IWR6* zPHj1~Ws-HQlz(dL4{iNU);tNTVPGm?9n{v(+WJXbKWgiMwtgUMm@Qw|)@#~&m8?P= z-ZsHJzFTEngrj-mhADNLHpT@7LCSXvw#1c$Y+#MZRu>LS~D#maLa;(8NGLuujxgBUvxn zvR+$tWc}L)4GoL|Rt;JIvgJx`RcUJlSx?%axq&gjs?gRlvL3Z%nYK!`wUn%fY+0hM z#o8(+>wa4vudUuMWRk975J+8}v;u#(B0JMAkXB%qQzCTMi&=qb>VsE0?U( zZP|yc(`4@l$OSg&8DZV#+2RMX=Gx*rvJSV! zH)PGU#aG(ePu4VBe4(w+we=ZUlWp;dwmv4S$QB=vHNh79$Qo;lceV8nS)*<77Fok> z@rJf&u7fA_1kH8unZDT3I&ViKX@)h(5$DdJroKS&42Lpf_RYpzr!o9qOGmkx>#EmY3o9=zOlsx+G^HTTw9yT`p6dNY3p2VoujR@wRM)Z&eYZ> zZEe)n8QMCXtaog2nzq(!t4UiiZJml1yxb|NKa_R1_M@JG7eD2l)$i~3T2Z-ZVH#`wmT)PoW%>Or~R2CZuh z1&ex6eql@MH~FzGskf9xy`?PbEoD(}$q#IJ#}rcmi+W4GXG`iMWlV{lHp> z7A&(O$PX6%5T}qISSM@iByFwL)*7;2vc-woYSdN(SehL*A~Z+waXTZ zv~`rW7HaEAvTm@&d~MCs))Cs8tF1ZOI$T?`wME}NVBKIbQ~MpJtr=*6ESjWQ4_5IN z(vCHZX)CI&3ECP@)+M$WtF1BG8ckNSEkVptponO{Fj=c? z(L-AyZDnbzySBP%tE;v$wUwcM|Cd>>8}w#&@;lf6`)@}3D?ly2z?JI?yD~vHO}Gr} zp!F>%#_zLUZ~Oj#$2tN3&)((szTn*h+HgDJ&4umWt*~OiCQyc3K^#f`_ z4{ot%5v(9E-4peU1RcR#PuP>`33>#qB5=_D*8a@i2kQvDVDAMD!QHTuzzz0xd#k+} z6a-`T8oSo6fYk&Rfqvk0I|}Ow6xg|T7!H%5Eo=jRIerUk3haYlfiK9tu&Tgrxf9L| z+hJXS%`l6`=k>& zZm|>A7}zehf?nVzSY=?1s1+4rF{lO36>tw(jD(d2azQIFQv~7JG$Z9;%D12txG&}P zlowL=rtE?B26n>R9NSa2!ioc%QevPISPN?oEKXUJGB;&9XatT-DM-mp3B$SrK~M-Z z+y`OhfzRCg+^>T^;9mD0_ip!2_YJW6z*hHW_a=7?)*q;KS9tf5lE9&q0YEo!5v)!y z-5qt0bQgeXVA!4M4!Q-bP;d}513z=^gEb0XaP4*N0mZx~iR4~^$ z-5G7U3IT`DR=eEpl;U*2MF=~cnZ`_I2AKh-pXpVJQ`~f*kzRrA&`6{wdzRY}y`5)vU`2sRu{u|j}KFfRt znJb@0=E$d*PcolChUH_-N12Zxv*g3fhnNo{Gv)ov`zLOvcQCI}1by?XnA?%R$t#$bGq)iR%1fD-AP>lknHMoHM1C(X zKz<|R%+1LC@;v6b$S>sC$dBcj%uURV%rlVxmbJ_pr<~86$2xg}hN7 zhP+-*NA8eQnNyHg%Sp&>vWOXFPGF8_jzeB5#~`=LQOGTF1amlZ7_wOoL2j0X$n)eN zvEp6kJIK-EE#z?V1{3E|Ib6Jk?!n>}CeEXBuy_gG1I3F>oJZwA z@jSZwi|3d)pUVE?8Fcp%Pc!#2abA_#;t6zTi^rLdA$y2Nn0uHHBfE$PnGY~=UX@+M zeeAxMxtn(nTIL$$OX5UkBeMbdtf*tIV&Xgts#7)Wu4b-8 z?iDMT%bAtP#|6%_pjB1Q?lR<~VkvTuC_z3Xijnt=<-on3I{4ke7=h zW|TRBIUae57|R^P9F1%iBbg(Z!WM(kCFgr6lG1Hl8$SM(J2AF=P z54jLD&D3$fFy%MqugqVV2bn)3=cfF~Jiz>c`91SH

znO`tJXX3mKqu^6^1pKzWAzng5wBaTxY zlN>Jd33H=aWc&nK|KI-`-rNaZgMjySx+gC1E*nC$G~=`~TBqLO_?P2($1^F8XVlwW z)0@-j{fS=r^m+@w-~xAr>O->5hPMh!;oZE-lB#-Kak8YYu4FB}73p&93ORPA<5ul9 zsX2|xFeGsaTv^9um|9m>HmNm5ep}4(Psd}9JJTI^ssfE^PNf1Rym12sS_Ll)CA_E> zbX?HgaX}_-RqS!iK`KMPq;{xnDMM9beZ^5q+5q1XbvT+GH#;uyJ1(Hy10CgF18)T- zb&PsI7`Uvf1WFNa}*+T#PBOzG)q|{s6~dN1mjp6PhJu9B98% zsTokO4K1^&)a~C54w`>uxBPdMjcFDg6&>ChT9#1sp!sJX^Uq$mRYf1ytQNjkZ@ncI zeOXJ<^?S-xe)A7Uj`^qG#5J79G`l;>y&MFP6LL>A_h*^=yW&>mKA~AHa}T)>NE$t5 zkUPGXJ-M0CK%inwGp}r)eDEz*38-SK4^04Gb6Y34=kyLN9k55bGIC7|C zUdtZd$yN;j|M0abh`m_FURhtZ6#L6%-q+2%F9WwJ%6Dv>m$46ZO^jKrVz#`|POtR3 z%zJy7_h#T0Uu&Nk=SA${wf2OJPf*cY$0{~kt5Y3yE^~L-+?|12e6@X4TrF%5{RgkM zC!}_~O0CVS?Jo14Ec2cW+~Vu)Gvd6SJ-ptY5cfD0x8;p?EJurjCvx-dp61<|xOJ+a z5%HGw?UTxJtV&D2;_fo<>So@Rfm?jdeL|dJq2*8@qtM2AM&DYI4Jtm$(CdGMi`;7LdG#CtvKph-U zX@iqaX6EG?=H=+?H;ttx9A{TrF`Al^KQ)6U(LMjpk)t%**iTi1SkS$;ai9AaR~>TzbrgE@neIZdL42akaob zlp^`Gw4kLFRW%tbKC+M}UBPQvO9*W>HsDZ7F}XnEfI1 zpW8P7Ni{VqDs}y%=1j9FKq-ug^NRM#`Og8#_=NmD=Fl$Y&~)6Y{71&sO7^PdlluSg zmi#Nqlw^iF37bRA5#~^7qR`ObIImwHNSK%cayH1)+e>IhN;P|Dw)}T28538F)*rIB zW~oT3OzK0&eX5z0W#)9nEwz?fsQ!?xHIqv_zpP;*YkaiyRxdNp%n6t%k1#IIOVua8 z0)ALXPP0o(8cIO^sYMdXWr|Ewq~X@7!lH3rsXk%)fJ1jiOMH4E7<0!{K}r`hCEZk8 zhe~34TrF7-O_2PBcDhPJ9hMz^p*7th)18i6wOcfwhOp8#P-p04r!QDAw|MG| zDYGUQ&n{YY{1lgQRre{qr>F=c;%a4k8l);o_`_6TW}O(4MG1qn$GCpu`oKrU92ZwB z*+YlqCuvv}wMbDkRMi(Z)-J0nDdq3?;|7fLjmyILBjRcS`$Og&4ao@!IcJUTJ30qG zD(5kAwOBpm+&4)=WI{{M^<@pkt4k_dzL|~gH`+hC8^#_LSF6-RzHnIZU&|;MAChBj zB~4M&*ic&2xTLBqZ1x>BbksojI8d@8emup6G0-+HjDc|~E{}npqjE;|f=_wr`1o;D z)cmBPj%{01&Xf=1QNu_1M}!j#u8$Ifz0NRCcurJf`EkL(K{6?1(27|I$X zy4uEs@iMw?)+7v9Q(msV1vy6MjSP$oVFDxLM^o0xI#Q#Qo?UxIxy~aZBeLMbigJrM zYLdjwNEMYOsM?Lvg5gEO$HE7dnc)7vaf#zIBk)P!DbQ#?4_5dq2^=0653BlR1w5dH z{;~f>P(Z)ke>tq&SMNXCKf&MI@9}--d(n4???T^N-wD1+z5#HZ;8*YaaIIh`+;Ly$ zUE)2=JJ=iX20ed*TK{XFM?JT~o%D@x7roMRm}h_|!{fBSvR{L13Acdm{%Lj{=7b&l% zJPNA#7l9i7l9ZXCe;-P5yT5_^(0iR>$8YYtLGAv0xc|J$eFCgWH_F`?wChb+f$l}u zy{_wF#knTXp+5>%n9Fx{1)ajrt(U9^t(#yax09@;u%f{@YoL`5cZNTKwGbY3Ugz{V zK675^Jjq$^Jim8|%yJGQUptx~7YB5T~Q|Dru-$0q3sFFAwd#y{mIr>)!SCRmC-^XH}p1 zS%)E)w+|_+JF%>;SpAmI{J6uAOEaBATJvfBMUnYIM*$aicaCa}q3c<{*C80`{R((j{{KRBQ=`Gzlq<>l3 zpSsJqc$GD2%Man#FEKaOgXvTBC;(~8#xfk-uCor|Xfv6p{2=qil`ou%}*QW<{v%9)=vGQ#v^f=^kxt2G+V08p47iC*=N?t0ABfM%F`d3&c@H&IPVV?za1X`;?b z%@N?|IwR4?x+36=&`?nQTA!Ay2i;0g8Y+R7sBLVh53V@0_rN6Ys+yA0VCA8`^OC&F z;R0`P*`dAr>nW|JBui`Xw{Nht!;rpuP^~OkQC3XHyKDWSe635KJqtV6ZG5#N_H@twwcym?>OjO z9ki^fW(i#LFJ4i$wzvi^y}4i4ZQdrx{hIFT7GIT}``bf%?@RJlQScBgoAlif`@gcuBmFL)-C8r{7S0ScdWMK>(##xK3h+8<&{-c?uzzK zOSb`p!i4W$rzgU)>c*Aa^d*PzwAQxqTv`J^jn%PzU9x9caE+cd%c@Fh>&r@A#fd)F zYF&`BQkXOw(td95QI__-?uF9o`ufu1#_Cm#H4SC1V-M|b)$4sgEnj6=P&45JO|ILw;T(^*6(I*P|96Br>XYP~D(@58N$`lQ40d5T=( z%Izq`8lModq^@Q)%*fCtJvt2O+);=%w8M}A`uqXEXNntKcj(~>!@9f%&Mo{bno?SQ&o=z)IDp9A>dS~aq z4>l8X zcvd`;0#AszKXISznhBY8{CDQa^(iig*}T$Q;TRV_Ih$tKeDyo3E`Lc$X+Dd^XXmvK zDzB+qQdtV!n;1}C(~z&e5~+)yOVuysj&^{rzb73!w6+GcwBZs}Vobi2l<2K;EU#&- zPReOnO?6TlT%CMXyoR;;4K+3SRV8)HI@}Khb7{Al>Sc*pm)0z8TnR}*{&gUlny-pd z-&m`Dm?l@Pqyc_LE`guE_4&}Ym~j2y$ADX<`SnXH%2t;B{eJ3lC|nl&U+h#?eLao4#FSb~OGPScXec?v z@BsbX8n{TF4`1J)6PDC3t*fLfBZ=v$PG4D4y*6pD+;*eCZFKkzol{Z%9*Q|i%Zs*Q#=}tKI)aZc2 z9}YzrE&8ZTiUGf!4t>NNI^o1ImwV{ll7>?I-Spr@N!fZe)Y|U=Ge|x?rqFKus`1r+ zM@k@H9ntD(i0pM0>s`=XO|!k_*jzK_&Mlt5plHFA;wkgy&6x-BTYY9so;9VN$Mh*h zlc%)br)a@~c{3&+xuE@ylZzG4LXXz zQD8T%M#mWC@HCwWj?SLZ;K(oZG&Q1YlyVLBG&P`Wq;d`MG}WVPgmMk_G}WPNxN;5i zG_69{Fy(^6*P?5va*gmb)u3yLazW{1`@UXD4(* zXc;;k%Bk`#MW+GIAu6M#%4z?KP6%Cs&hNlESnXVb&Tqg8g|?d(gEQU!8l2FY#o*{{ ze+3TJnkS&^X>{35$K#Gq(2mDpkUF~a3uV)>Fr?D$BL)u}ZZ{nRc4vF;;DVteWz*3Z zFb4w`VZh;q1%rp?G#v$w8TM?P2#eJeR=m2hddT47`dWBU2j+9N7C>3|riHNE2zyp> zapUk}^&`YxVhR;S5uW=1eYvU=eOP??r@jsczv?N;Mrv`3zv2nJg2S_7TrkB ze##p7&Q_M+VdAq(*5nuIdbBC`JX(sVoKtmzVWGkfgJhz8adPo6Z!D? z9JEKJ`m)f*w@v@5a;hEMbg=fq)vVe?n*~=H6H>xa&}NtUEoc0>HSi5@ZO0+`^UBnB z)BHKrRc-fL02jSgq&oQGolkw7KV{{TGWdR9m*1M^-vlQn+;-PFaNW7XblL^}T`Kc< zHHOymOfH%~3ram1eq<;VEmT{0;GhBtC-~}?cAK)GM16IKQCbP#ZNZvaQ@6SVF089> z7*p$NRsyEOLt%g!<+#b8T>@V-*o2Eb@bE!t{`^X~LP>sy!%vI0`?U1PjPm^X>RV1D ze5ry=+wO8?HC!pDgkZ%VOlW3VSuGs8l_#oHXTe>T{Mo#Va#vQXFEMSpAIuf`3)I~~ z@K=WvS3}ik4t~`wsmed$u;dyZO<+NHs8)tySyi$Y4mE0* zd1Y|XKp%9vLDgPr*lG{z*7WA*ls~l& zZlY+Pb?W{9BOOl}uD@JAy1sP1?|RMkoa-^TJAS+CTGwT+xND6!_5 z%16Mx@?LPaJm7L!zggc|pIYz0UGt}{hpoG;o2{#?i>-65)2y{t&Hsp^;5`5TfTrO8 zjQ-vKKa~ot-d1-j)k<;x;rzk*x$`~eE6!(}k2vpf-s-%@d5QCU=jqOqovWP7oX5jT zjx(GSoWq<0oDpY+)8}+LesO%`_}KB5<3-0)pcYV)a#YIflu0S0QVLW0!4;scDXA&a z{g?Yk_m}SX-LJWyvlh4?bKmQ}-F>b5a`%PSGWXfmOlzVw%H8B%?Oy3#>OR^%$2!41 z#Tw)u<1U0}H$v`ow}dxHcB>0W&LiNayZ2P#Om|e)N@r(>dKM@D0&ShEt+TbYNn59D z>ojehs;!f?wMJVfYO6t8HQK7u)^crCXlt>yPSDm-+M2JeIog`7t;4i6Of3x0rC<~@b&UcEH$j22@_i!ljzf^}>11bLMY zFjJhV5U;DCk8}GZ<)<#KSWmWCj)U4dpsoGd`n1I|k7cVe9m}llH1-`&eqar6 zvHIMjt=n6y&e$3%M&~;6D_+(IUOH5xMMRlnF$AvfWxvhV((HH0Dp{7^9WA)n)(4NH z%JSmsKDp?pESs&;K7F-CqqwxbA@T$IDQiFGRhs=DrX)t-g+(Y!X;*lm6PZhN^uw4- zYpQ$wp{+hGR`&fZR_0*0GvKI9rGs;IU0HfJ6{M!BzIp=ai-lBveO_n@?W4QD&$t%9 z?2ojytHsL1>{Z;%-?ZON+R_JhW~%lJXiFd1nL_)ywdK^7qs7YjOIteMjNi52uiE-W zTR4bR`7(age%S2j_nr3pTw6G>Fm#{x!;VM4SGC{E+Imr2|JK&i+S;qF`?Phpw(iu{ zPHo+$ty{Hqy|%8^mY&2i^dy#{r>>04^?uv5b*Z-WWRjt$kPJO>WavXaLm%iFC+oPY zwY5rHHQLgrqKxI*uUuP8w53l)8OLeAqqVhATXVHFM_c*?l%Ypw#t0ocOk0DsRiG`G zwk&PwvDQV8ur7Lpb zF3;*vJ({}U^oS*RM2GIt)<3m%hqiWV>lSV4BectP+V2`|>Cx0hkESmEme9_+g*xjK zc;|E-+Pa@UraPN0p`G*`(Mh*eCw;ti`atiekGD>*Xus!MtaM$fbUmKaFVdlU6sK>} zetHzAuWRx1{iH3OuTQtB@7R`5Z@spTY_U9HZRyeE(WA+u>uc+_vj1#}VgIfzJzv>+ zzOuj8p}K|a{n}5DEBg!Wr$?CmnfB9dYJZ~rKGv3=$L$ZbpKb&DeeI{`Kl?rH_pY|y z(U$Hl`z`JFrncVDmLBc)YufKsZRwu2^|4^Tq(lFsEj`=XFK9nKHf(+L*w5)ueH_`( zXup4HOCMXdo~iApbf`Yw>?gF}k0Dzhm-fRt^dW6MsI3RIb-%Xm)7HJ( z+O4g7v~{<(?$XvSZRxX%t!D;X&kVMn8SLA2jN7zztG4vKVc)F%^bBI(sQqrxmOfkA zdVaC5)uB7Ib&b~lI~e#j@Y$i1+5Vf#fdB94|NS3rzW;q~zW<*7UdQT>@P5di|9NG` z{}1&4R@tdaPXja_QUAoQu~GlTuC`JC#9nEm{)t^>dvU)Nwg-}6}CVw zvr~}ewi{VyyO5=<`?u6~qI-$$K$h6>0~_Kmwhd&l{0n&k>i`}v|3LR~67^T?VW^;hhpBekpGg)kx#R(;9gmQ?x*B3lNeXE>}yoGfMZ$UJnP&H9ID$^Pg*lXVa`$y{`AlzowBupZ*+vNyUnurA_hvKPA7 zvp!;zjG#NlI*F&sp6LDu>m{y}A#|U@x``*t?&v;=^%K|1uIOIFI*O|$TseQ^PNt!I73(Y3${@OHSZA?X`q90T^%kq77u_pZcX7G2(Ot>v+gmPr@7OIeR`DeEyVkq-1PVO_?>tjk!;x{N2VF5~g6%Xpl?^Nc)}bs3Kl zc%A{B#$PabKlf;MUp2#|n zMFP(=GD>=n_IUZO3b)6}caUS{+sHBUE#zqVCUTT~138j)bVtb7&^=tfiX0|iK@Md- z-68TNbPtyQK^Dpvkp--)J4il{?t!eYn=hY3cOL8P4v^2FyTAMwvLEa1=E}Y3?#sHn zedLqq?k%4{=E%p9y;y%YTRw{JhMyH$e`Sb49MG&et8?xCvQc1VG zf_M)(p7l7#3G5#^R$%|gF|5luT44XkQLN87QoN4wMzB8TaDn|Jhp|rQQ1LQ`4`H3o z!2J@$O!9sh6VPI>?t0`@E!vDM}}C}GfQCq$nN5P4DZIeo?Qj@ zkIWRxdo@ThRRj>xq6Zn$i88 zh$Fuhn~~oL{9Y!$W?j**SXXpE>xzCU&c^+|5N9Dj7iS_r6Pu8qijBxmSXcC8aXPv` z5*v^ovcBjCVm-Rw7fr~0B8GfVoQix``~&%pSciO@bw=M3C!_mKaguuef1GiF5qLDv z6d33K%YU!`WdA7NZ@!y+RlXeWC*BLaM|u6AihrT!C{NJ-kA0p!!8Spmem$%hWrEWD zdNB^vupdp?kTNYrxE}%aztOJWL8JX7*Kq3xcqX91>gW8@d55ze-kAT+@swke<1mMW z_vFtr=b8cIMaVkwZ%p$MT8TmFN5H=prHng5a%X}PgY7!d*>xZdx9YO&nC7{p#t@1m zDk<$`A&|LcWh>yxWq5&02{E{SaKGd_AY2Dj?D5TWDDPw~vD-uP)?_U)pX>eZuJ^m* zmbAnU@2K#%sRUFe>O)#IKG(i1*S@Z}RlcK}XH(&OC26nR%7y1=IY@QI^`7e^*FKMn z#l&WHl=Uqkd2>S6sjgSDT(5M+E!BJ`Wj!D%>zg_28TIf`O5NI8r8j`mJ+7BQl>e20 z>lKy2nC8Pe%KoO1yfGpBfa}R_t|v2at74CBobBMHczL_eVx^Kfi(>TjTxW3AtbN2mEK3tbz!>e!tu@1D5HK!dUMyeWCSmBg7hN{ z5S9sXZGi`3F7&%Dq=uSGStSpV>q2rz@({6In=)OSy5N?E$P`K-SzPH_m4M1beQ1c- zu8mz?8@u3E`HpCwOyv(HHPj9+zk2SGJLnA8Ij)VuwNb?!(>$r8e6I<~s}u4Kx=!it zIwcdgD)#i|iIi`@L5auJ)tv9NvWA6ab?RLWEIvHcrEEILPIjH@I>qlgMTLxSE~0{j zLUeey$^%^$g0<-IU6eM0Nlxqc4D0tGZe1#HOmmbH$Vf_HyH21*l*eiP*4g?k6}Og( z9c`Y#?a*GW4dj-tRI$}t=5S-Tjjm6s^=r2EYfs!dRd7-BcrHLv5?81sP#g#w0WH-8 zsn##q)-OG9>rlR9n#XZ5BJElM1c5GBX{hL!1d6?-S_iYOgFSJpe2bdLLTsg4)ibd> zwzYQ0{Kh3ymH1^#TR5zrT@BX3fOSx%F{XJ;Ms_z)u1aQX^9U*gXz;W>>A;}4I3%|uXzBi30qnl0N&dojVcGMd-AGPD6B#ic}(+=jMNNvOhm0&r8TY==`g@^RGpc*`FPfXC-8x=Da=RyuBN4RqR>K{VDtW zA&J?a)tbF}uo#~!R#8A)p{y3puJ8`H`ugR(&G}E~?Lp`5Dy*ov9~CAeX#~JV9jHlyP#U9z*n+lOEpm=(lLhwl*7AV@{ zj7w*nGS2BJ;|(EsT0+JFXHz$4QwDBT?5WMYDC6Wg{j}DM;lXv#@KF1MG>LjQfjTng z+~{obIh&{$*&P*QeMmMX6eHcas)ut`_y3E%_l}RE>K^~^&dl!4+}W0%KoXWB1eD&T zZ5kw$BqX6)LJJ0@cdQGdAU4ddiXA(4EGTwFRBVVH#lmAnY={Ny-&1ynWM}g{&*%60 zeLsJF7joZc?#w-N%iP)7JLjHDA*QZqY|Gi`-Z$~8TGb>QmQ!NNO1-to*;$}2Q5UAD z3pqQ%ma-GhGtN!Oj$fV9N}ZBLA*L>EY!j;$+gHrF$FjrTG@Cy-C~BQLU7g}pr*JOv zTgt^bdB)iZxyV*i+pDQT3Ndv>V;<*Xpe+|?H_Zi2<%nC4CuYa5j#pDN)l|+-ZcEuY zE6+GHAv-C`U%AR(ITT{*VU4XhJ9a0hXCBK=+-)Yi?NpRMRiXUlSN`Jjw`%G9XXF_x z6V9Kee3!3$*P231UEG+%=kIR2^R7I0ew=!McKGv7v%de7Z@#JS=aL2bko%3?{(hd~v!ol@FAUm3@9?ALlE7kd`^AcyJ)6`zn)@Z}k-_*yzZhWxvhw_wiwldIh z1pMTk;TYy{i0z3#|Nm#(LnG*X9-K_ttMB_fSgRDK9yjj;ru5`UPZot#eUZ2adfQ|8 zcc`Fw^_kLaCCw}fanFE=hpzzpo%-9@6#z3jrpKIeN-6!YOuaNQ>7Yo9{^q~QgB4Yq zpV(&{&M^*WQiyv7M`HfwkF))ZJs3N2O#?dDTs|-MBi8s4#%&IJjKi3GSS03izK!j9 z_3J!XrWKt7)}dorN{k+7jgNxHN7)o=xVJD8^EscA;CVa6IDi_aPs8)n#hfI7vk<)W zoyLdR#)nxHs?(zBkP>BK8>uW`_L-)Fp!3I<1Fj_2*a89vX06>gjR z?Sw(=*2evr6e_rDP(*F1<9>$8o9Etd+}FyuFN;FlGbEz$l?T3A6Fi20dMx++;1|#Q zy~cCKeO}`}Og}Obb3Na-XW|c@f91gfy!ez>M~`WEbn}Ncr*T6YwH4))V@0tZBIBjG*0|ZYE@05}R$*hzBfb5> z@ng7Vcu1l7jlgYOoMT*^L7|G{0)>q+KlFATAE6HVDNmI_5?;?f_r4aWFZbT3CP!aY{z3*5>(8FiE5-v2N#(Iyj9+MY0#@x{7 z9G}>vALJQ(Wqq>eHotLJI|IJ&F;wt~L5=8&p4|mE?UXPs@jhy4UIf2!W?SRTdT zkVbSv&n|-#F3Y{gioj2h@iLqNgUM%ljWaQQVPo6@z3mskdwIs&$r{pU%nTYcb1959 zB>JC+64)E^UDT1JAv28njz)bu3S$k~qVM^4P)GAx$S`JfG-kA?5cd=}#(dA)7lnEI zSS^&W^U!APIUT-KXTZW0sHLbe=7m1TRu^yO8E?qxVoAZrh1!?9;-WX|2Fh+TeQJB8G5na*4*%SPd z!?4PpJY)C2^GohB`sW+{(6-)YZHs=|;acM!#GNaZh1m%qe|O+qmiO zCMB`ln!}`6{CR5hHHwXXsYXB45o(Nir?)$5e=W~=nH;@0Zw{vci-O7&3dz@dQR5u0 z5PO@xiYj272K?(ZSCVEJ9Soxlg$f=ps1aS(CvDSLP)YNeNHg?yhTeukt_gHk4{h4r zcDsG~SWO&za*lUXx6#$mQw$w-3~G$IthX;*@=~7hLi2@7bp65%{lWl+Dlc3T^Hy(P zxMUZmwiYhY^>wNGIzNR9#tv#k=k!TS{vxJqUUI*_ww1m%i$dHpxDox*lf(1>ubF_4WJKhj5(&af8Rf!XY9adP554qkMgMQ1Ag}bNui3n1~j6J zddPcP!ZTNzu``xD{v##D{Z(uCS2+~&Gye3Jiv1iWZC>mY_m{cuFLNlwJtG>Yaj}oL z{c_x46?^K8m~R72LBH$y$BO$4c!~I>-~A<5AiAQ5BG_x-**xRvgeM-=-O=yvC@G{- z(!q@}PxSWW+c9~}TX}q()O}o*`?ypJ$yfQHMs!D?wDF(8V4 zJ9=n*`-{P+o7BRw7lZEh?hoA^bT_T>Ftjn|kly|~YTu^%hJ(6cUY;Pdx`Y_w|VJ3y#K;u|}J?mRhLG!Fj*S;LrzDx>nPyfbR&bs}z z+{5v#gG+~4#y@a<;@YRXXaHbvV-26z-YFi!*WJy3MX1hS{mx${g|R+W-BR)gF?m9t za{iL#{3Vq__W!TECO%U#g{zHAbshx2_>VfTcb*6H{i~gWoCVGdSi$cnZNK)0wnMv5 zyGA?Lf1~=IdZoG(R`a`0oeS#)ob5l|KgnO@Ki;3?*L_EP|MI=!d%}0OZ=>&g-*VsS zzEgc;eI>pDzMj4=zV^OcUxv@;bNht%H}7F>u+|AyV9(Lqu>SgQ-mkr%c;E59;(gZp zsP|r2eei1UW#03>XL=WUPxGGQt?`z7hk5(LS_5spSzfPK_59}f!SjV@pXUwFi=L-E z4|(qN+z8eR7kO5Bmcxj}bk8JDrKi+0$kWr)$&=?v^BCqo<}b=dzt zR4Zl5P^FJ@k8*R&U%_sri+`sQR5JaKE6-_5wbQk!+5~NkR;>PDeqp|2K5uR{Z#FMA zSD8!9)6B`{7&Bz{Rvs~rgH;U-`G@>bekDKh@0GhXpL|T-3ic8!2_LD&=ji15G z;x6Ms<2vI4c+i_{lo;KNZ1Ax7t^O|9Qrx9S^>bjA@@jps-VxT){N4Sz`*ru@?%UiO z+-GXt-1Y8C@TS<+o#j?s-@zREcU&*J9(G;pS_8A?PjZ#J2EjPX59$}{KJ^XtMOd-m zA@xr6Mp&`nB6XFzT%8L;k(1O)wNxFX_EbBmd1{(!DE}zGDBmdmQr?3L!TR9*5d8Ju zsgEV~uq2v$g?l?5iN|%MSxFQ}vxrEd89pS@d>xW#&J9U4tA-?+H$xK5j3J5UzK}$7 zRY;;4TqOPBQCm~~pl@`f$$=Q%X)xq}6T1D(_=_@z5>0rcxK>tNx+VE7$*?3PE~V2% zF-)6I)5A!j>0u<%WG|9v5*JA{C5t4QRz(s`k|OCf%m46_26R=AUZ$6HeZcY%%CQi2 zujOhs7BzF}yy*~sPf`Up*%e&Zf`V(QY*1HS{Wvdq#tE-6mNI%t7?GG!KW*u0U5Y5C zOGiTIM;Q-!)jZzcZB|3)Efm>lbzEnsnU-|2C5^SDQI=FNYF1VotZ_xNg1ze%b zTe4U!vfMHsTNC5|t&{P8eVvRMv%sO(lK2`PpIDxVahady`=Wd?z$AMxh*1ATXSv{3 zwr&hKdc~&8yDrwRX3bD`9gCa;Uhc_zy7D4+ zG(M6X$#d)r=3#?nz@?C5ug`1u>|Snw%}| zr)0;bk%#!iV^fbyc5KRTNn_7S8apOwY-zICKx(pB|2N5EJ*Os(rDaGGOW|=QJJy_= zELOiIS*-h`q_O>z#vZ%Gn$)^0X|21SNv6U1ZPM7MlEz+^ELPodAu4yCn8KQ{VB5xa2kClKBALGvK=rf3WA|HrvW>wiRf$ zdU0b)g;kWX_PXo+-F=A zPm!_8lH%9F)btzUap~7v(t1l;7nf439Hg8WkMmv-mpnA(8_#RfRCAK}sS)Cgx$)z4 zatwfb-89h~B^N(aqVz=kIG3f*Wwnfprgvis=i2yjPOF}sy{)*OaY?hvrdcJ@%B{U4 zbTz|)`c9#zwsyT4Z3!v7mBLSZDLEYJAp{mP`VkyDL0pMntKipp$<))#H}Db$c@emp zON%twF!wasaCl6$HLM0hhmFS`1u`v4V!mTNz>*WdI#{u4wLPj3uVPy0hK_PAOxX6~ z&4c$h%$nXXd;T=AOL5$rB(~mhY^j@N?CZbQa{j+`$;<(;WKguO^Qkc`Q9IkP%p9i|Kppq|+Dofm4ia8iD7mYWext`c2hoK)jJVb+)9u zm{i}1fA&DbcgnW*YL-N6P!18Bg#S7J`C$Kl1nmFM@r8UY@5|l|-fC~Q=Y7w$p7EY6 z^KJ7=v&!_#H{>O6Q#d#<|;{3gA@b&4wo48yN>PIl&k ziRBI2cr9CfU%f^h2R|Q?`PQ7*Fc%JNt3SvtSaAm}eVom>! zeE*JY3KcwJP^2Yeb$J|W!Q`ZZtV>M)v$_6fb11~v0g)1}2b+0>>~O3e&^Qvu^ZeTb ztNqU!{%0}i;7Bo--!?2J+vmYp3Rj&q*bde!{?(E~9u|wBxjIyzJ$XA!-h5b0^{)!} zSD6&@P;(?^qHY@ulx;D2^J1s?!@2%&4u!ahyDIAS3t~6-Clw=c``Sl0@D4HgZ{~_DU4M>%tYOuJRg%cuYh#_q_+M^xfI4K zpe5^cnTN@nS3tUdVjKU&TncedX(VQy-qThAxy>qob5TE|NgYh^FZEAM^-ttFh*_xH z3(-1HW+&7EELWQ4JDN&itPapbJ?TZz3X?al1JidT+jk_5!dM-&WSA~G3L{2YXnja7FAc?0ejI5C)KaPhcg4B60I{ z+dV8TPkJOS_E(1o){z7^5vOlXE8m|e?nEIH}DdpnWCRscAW(R$$kn)}{f} zHgoFSS#ws#axyE|H!I7Bp@#A0k(ix&o-HSSOpA`<=geBnX1VbVw)u1V8rt|8vME$? zSN{lFtwTO+?_Z@4b)mQ7ST0U$FAkUlY8>5!EPttth@3z6X8vrjMp@6h>ke>o)TaY34~InTd$g z`$~rQl@tmUnn4snyLGIAM1v(MQ3sy;*!i8_m(#s3r%;HoFvDfc@%26qcDOt>rkWiR&iot`bpmW(g=9d+IiFRDP+T)NQahmXs9EJ;ZDGt+SZ$z zME?xg3h9ftD1x@?SPRW>6JYl97bcH=@iv=4VVdi5&2?E6#=d@A zv`_yNl{Bve(_GuiT$@E9mmp@JZu|N*{%BeW$G(2e3q1YIwT4Ny9{nS6=^sIZbhrTR?~#wjvpp52 zr_uwnS!14U*6L<0rW_bSV|1)@TaJ(989$>*FD%bZ2{p5Iz-(<&sA7EoNX!V`_Jv^l zifJu_9Mf!-VYW)8Fjm?Yt!OykEqQ#% zwXekck9WKG4DVpi5%AZx%2VsbxiQr^LH|vE zL67LC=pEhPxwpdFf2H8*{dJfLQ0?+NUw5v9nE*cRRqY~pcWZF zkeT_KiihwQYF)jtM11U9l0#3iRneGze)l0pLOa&ycjIJDAGmR)+#o4y5?dd1%t>FQ zE=pU3dqPo-n`5A@AT#pil-Q*KEl@qFscZ@W_=hTrqA-k={OX#X zR7G{^*m32s7L&T5)dKuOCBvd_*3?2)=H<`BKU6dzil+O}ICy1nJ;!^?lz8JbtxsdlBHx_+Ihb^GBxbjN z{J_Kps%z3f`~VCK3^i#Uj)TUjPo1sKPMMABhDO+iKgmUYYCiZZn9Nq!q#kJ->Tt4ex;ouE9nU`` z!p8fK-nPqPQa<==mQ>SH2!#_+PilF&ET$uI_GBF|jn3BGA zHKjE*b>$Vc>eTG1_=hS6Mc9Hr$*pEW5*3(wO4=0s!__HYRrIImtKc| zn7n_4&GsFgY~>$kPp+QoKNbHl<-iD<>_f@1<@git2ek<)iwbMXi`7$7PQgD+J0QY_ z`i{=Fv^5E7D=I5W)sq7!;~ysN6+!cSY|{$=*)(BUWlina!m;Mqtg)D^cO+(Wf1E8@Mbl*Cs>`beSD96rRhX(r1g-4h zWNmDz#z3mYyeMApUL*RB@Q%nBf!jSIXjPvy$>^p@3Qs8X7G@N3611UDnq*YdB*Tsy z<{g$X43qSV#0=-#+cGv1lGIdM>+W^x+{xc5r_G9*^Yd}LXM|1RRc@N5iH0{zGz-$?w$8;g{Ud1q z4kzkqD@tkeH1q19C`;ycYiQlJHKyzlnZYT!=9-?Zgi=mjv|ws?%w)HQR;^m$R?oXbHXJ^qX9TU;p*;3e6w=|?9*bdk z5VMulI*XeJP1qq#TiYo@RvLV-)U6>iClgb2jiA*!q_AHA!zjg47>`*pqgz8pRtAdQ zBW$Oh&Qg8_ZX#o_vM%ef~NeKqg(O|R(V_e-D{26`}yF}3D94=vdGn|;;PMNxB(bSdQ z8hq(Kl=?)_>>LiZ-&zL3^F5Ns5RwnE&5o8eUuC{uz$59^MNunTrTY|sHJf(|Xn8Xc%PARKzHRj4_n$&zqb z7dptgND&I4O6VD3II$sIituS+hXMy+I){L4z$c)E5W!$r^bkQ^SHuR`Tm?HIJ?(;n zdx(NiVHL(I5RdyDs3^suYL*cN&96|}f5m49-Tq20j^=!zu0}cyl`LGkqATEH-FvNsF?xA7k3WTDGL9nTZ z9D&tvQV;AAj#Q}owy>p$AnwDUEe0Z>i11Az2PPE(ID?}doEAUXA`}!M9o2<3*z0g= zB4mI9+#Q1dYXZ8!D=r9sFx(ZYf|G+B6zd>Ulsl(zLRFHwa7gbV4DE8^xOdgMT_Rl* z9k+eic7tB zbmX?3T4T4zF8}rJe~z5u|Kzl8!>@E!MQYypds(#8eab4OXSt*5;Pc@s1M6mw+^35r6~WuZ*-}jY5}q=s~D$ zknz)4B{qeGC<+Qg5h56dEC57@b&y_xN(lw=D997!wu69v6s*EJ3yp>Sn9DGvf=q&h zsSAV_hI1&|hM>TYBjlI@`W%pT%CtjLE#lFbjy@r5ijW8fDJs+>7=&FRI30f+(4#fb zA@CZ+9kACSg4hgjHNo^TQWcy*2^=Azg+*IYPzbv{kSZ)T3HlV``3fPG5ybSkRVJXz z^MwH!(!!eE1%R(n!n&=nP`fP&egKgxi7uH_fsj&<#%k5XHSy z7e#P%a5Y3Y;g$vYa0Dfs0_z5Eq+!$*x;UmqS%)WrJw=d*>{XOe2OOqD4e-TVxBuFB3{y9E9m07TOTcM4dl`m&2-9Je-*_2@Tr=qA(xAhaCa8=o1Ry2_R=ZLa05L2aRROVSB;*GUf-flO0eG_x!D-MT8zKxLepbU@YDkFfcxR!H5=J-_NDUdsBk}7A)Zr;b5Cgm>!p_)6h~tE^Dt3S# ziX96#*#I36M?M5{|X(0+8G4vwZ3WkM4ghV-P2nj6@X9|Jd0s)CI zFZe|t#GL{jX<-LMIYc24YDEDR8sF!jFK*C-5Dj~k;C2+C)6=B10Zg8~7q z6QVq8tFeIh$7>i~Dueh7Xt? zF04{EM7M}uWvxVmBBI4(KP^ZvA!`Dm2cO*>3WpYH!A&fo;qt`vC1Bc6UQvi<8>+Y`TinATsu>z(yK6^Ro0<)FHC46HSME*~ zcXNme21nWW8ei}x?X8nk!=?7*@J3$TnIi7wkkhl(b&~X# z*wfdHR>kHNv6(|mKQ4+k*Kj$UWXt}=iRp{0E8(4fWp(+8@(QpRsi_=SU0hmMRXMu6 zc#jiUWF)W>3*)(iiw*3vOWr6naTE$J#Luc@l6Dd!5iA}Fp<1%{}uILemgNgl4wNusWzw3xL- zvqV%C7^0T4C>xlgT_t7?{>7ga&$ekPg_}!7Wo=zi>F~;G=m?Qq5#bP3jfk?Dd6E`9 zt3_3X!)w7FPc*g`jU1w;(kPmoC+(VN+B6ly16o~8ZDH*=_}08UM_kS!>KPto+w&wB z`Weaf6hlX^u7vykhE`$&hpdQA(UT}znWzYD!r-nyId+v_)=FHa3Jg)v=qOsHC%pz% zBvS-8opSCkU>!ERQWcj5#ibmgy2>biH>MOC03O0F>>@7Y5EV~|vYET1&ZcGokyNV&|9UJvo zdeMFhKJlB=y#GpXyc*8we2xl#oL4XFoNhBQocmwtECv%~?3RV2Yt*y4o`rv?S32_@ zZI$zc@}%;Ra+h+ma#;CV*{{5(>{gyv2dX{5Ph7s5sd`mS`NP>k4TB%Kd1}3SvRb2# zQj44~IG=Jp?7Z7~i}PA%#JSeF%sJCJ&ROcZ&ULY?z4JHc>&kiVQ{DaCZr2a4_gv4o z?l6nYF7huJO}G+PNiQ=tfv;ev{tbA)dsg49U#2hBPtr^DuHgIbC-*-0bKq6rGW9}O zS!JvGDy-QP&|qv({Ym{yt8@-@cGW_#mQhfTwX=l+lU@A_Z&?}F729``@wzsG-@ z{|5h6{tf;MVJ7*R{w4mo{+a$d|3v>-|44taf3Ux=znj04KM1}KQ~jo2^Zn)f)%Sz% z0C+w8!1tE#Rp0Zzr+tt5w)pP!-R!&87lpMHF7Tb}Tj5*io9&zKJJ~nRSK%80{uKuL zdijp`b@1i+GJSrZ?sLGX%TL~Ky&)eNw06r00dDFZeuha84%-J~P`P%a-ct(8N^P1-c z&oeNG;{nfIo?ATEfq%qHJ!?H-&q~iC&*`2So>RcLL#3z8Q|LL-)7x``=QvNkC(9G? z7#_v^!~EI&&ivB+#N2DXVZLlWXFdtO5AQSYFgKZ3!(5Py%r!9mXqh?RY%r&qlZ`G$ zdm|UTg!>FPti<`7ei+*IbNwS|+t>A7(7um@uZVl}+w>dstMm=}g|KqunfelauAZ+B zQ)(+qDo+d+ j}Z|Q>Ij9H6dftmS>X4Nk~0ajd1QEK}Hp3~JdrMCCLz?Uox2zIZILJb;z}GDF3>;vgN8l?G`t}O^#6r)&VHSD>ex!5u4eaD& z2L=wYFd*;)3;hG%v(PW_9SQw<1pc5z{Q}QZMBjmd-&q(C_>G1Bfuk(+3mjpgZ{SxJ z`UHMK?;y1kYtjGkB5=h!v-5%+wQtjyx$~FRj|VsP^_|Z`mm}7(HL&U)Mi=x=8r^w0 z`bmLBC|1@ipS5IqLs}Pf%2GRP>b&{g8Vaf?)3Z|g#n?H<+!+0sctUAW9gZiBDQ$N{ z!uIv(aS0avn>K$jtZ>r)1#}BjyL9ffIrVABqonICU&}-aTU5F zft&QGPS>IXlnJF1%WL_`sNFnHR?aA6j9?6Blrl;f#SC&^SeH}CTOr0U#!$u(#$d)E z#)*u9jFB){>8fkRZPYvPGnQ^#O=)T6=o2zxauLYsRKqa*P&c8xq_!+=0+yl{x2pJ3wrrT3+(9~gk8fZ@U)5P+qCf&Bw7P&WGY z3H-xC@4(+I^a}jNLeIdToz-#izSK}Z{q*4CrPF3ZR|-x=_jL2XGgc72^(_u&z4qT8 znfZK!wrZ@Ubn3j*>VqYvMdL=)f!8{4#T#5QKR9pxk{~(@fo>aI(oi3)UjbemgA1mD zN1(;9b2&s#T@qYgADl6NUZ*9&dG+-(Fxldz3vf<(uz0{ga6_zYq*^K~t%e672)aCk z-Y8jo5dB&5J)(T>f;r$J9p*pItb$n4Jq4vyrudx$(y&*s&gUkNFX)}C z4mx)CfaA-T)XyzkQa*1+{ff?){hOTyLz>-SAZ79VrSq0_zBp-g!HJ1EE<%qLSe8{S z?J4MqJ|C?+TS@)YIZ)wn)plOm!j1y+qG+WkhSq|k7or=)gvf&9o1L{7rsspB(Z!?c zS9U&cthNd|EPVy>M9Cofj%<2~g1I$VI0xrUT?Ci^qN$6aHwDp~79N9FJoN=gHFxgR zc{93oC@9lbL8m2+HLim)*aMA z*9~SnI;xfNT-GlMq8l!#ELcL7e0&DkKs=cF=YMzDk)T=}(*}!2!uMVfO}-abzEWqhAnRVbsrqR)U)l_Tf2DGQ3SK2Hz*MrejM4 z+r55*dQwcu7(B_6hFOc_4T}C~7c7_otup_#MN{W?%ebqBTgUts;^**J$j^+Q7>5}@ zG7d3*V0_Q`j`1zy8^%G#*Ng*UL_>A!><6n&Zj87OJGd^N`$k@mDfbl+K zFXKJNyNq`jZ!_LvyvcZjv4`g354%g+p%3H56US_<+*u{8}@dD#{#!kj_j2(<; z8QU4pFrH>S#dwnO1mkhWV~lMKa&lak^9XNkWjxGyi18rf0R}lhuFJWfx9(%y%eaSe zH{&kGos7+lI~cb!Ze!faxP@^u<0i%?#*K^{7}qndV_eI)hC$C)bvYY(>ng^Tj4K#X zMugGGxSX+paT()M#wCo485c3uGcIJTW2|Ldz&M|=hH)NaHDeVc%s7{E4&!XbS&TCo zXE0VWRxp+`mNCesbzRO9-dfC9#8}8!z?jdN$C%5Q!#JHWn=y;gz&MRDlTpu@!I;jN z#+b^O!l+}M$~c8_GUFu1WX2@MM8*Whc*ZzJEu)4}%^1t5VpK9J7-JZt8Kc0?z;UTF zU;MBCBK}|gJq$JsrRGqxzuCj=Y_fn)@&JukIh*2ViB!58Q9LUv)q4e%k%0 zdkc)I-0Z&A9d%#gzQBF1dxd+Ud$xPJ`(*bxcZGX|JLDed?&Ut--NBvb&UE|Ty4&IU z-Sv~}Th|w^k6{dFkLxAZ4%ZW~?!djS+rjo@qw8|lde?cbvs_DE^IWI7rnn}7*N0KA z64ww{KUa5Gfvc^nl`GBVaXFoTJC8UIIlp#(>f8q&B42~iqi3AkoDVqfg7Ks4oL4w6 zg%PB%bER{U^K|D7=PAzd;5VYoS?D~`+1q)7^EhYz|Nf|kS>s#i%=*t`O4`+0Blx#i zqn)iS)8=apuxi9)twtNIm1;w^{xD9}S!<`Y*3vbv=2HJrkE%ba2i4Ei57l?n-LO`} zc32(2_yBK#eHZ$&E+|Ia-aVz5%#?6eI7@HV3GHzg8&$y0pE#n%-)r^gd zs~A@@u3$tN5k@29a>fS6WsFN1moP47T*O$JVIx#vjj$?FSv}d$qv}FVtZ5a8CJVq{~HKP?Hhmp<5Vq`Kh z80m~OMk*tP5n%WkK8Ba!VVDfbFc><+&2TZC42_{O6o!K#2*y8*zZriq{$%{Y_?__^ z<0#_@<5$KnjGq}lF%C0+WE^7r!1$i=9phWZH;jXfuNemzUopO9e8Kpf@fqV&#=jW* z8J{pdW_-l>kg<>P0popw^` z6$RF(JcEjoXHZdK5l7xfMaeU$D0v1I1(r7CeN>b@BUY3rIP!7EV~lN#M;VVW zwlW@OJj8gA@c?5B<9^0{jC&dPFz#mD#kiBPnQ;f>cE)XtTN$@7Zf4ws$d}aL^NdX# zc_ZTn#`TQr7}qkcVO-7F$heAeCF2T4lo4SxGA?IqU|hzylyM2;V#Y;`^^6M{>lkYp z7ckCetYMtTSj||)2s6%QoWnSqaTeoD#u<#2j1`RKjAe|aj3tc4j75xvj0KGOjCqW? zj5&nh1Z8yH_4O&3Qw zM1zK+Xv~9^-Sl~HqKYw<9HNpT(U=b_yZ!ci$&{$#*A($9hnRk7 zH0H(1ZgBjrE&ZrswA}h7Rs6ysmm=oJ%3g|h5*2`H;;2|De$Es>s{%t-5_4%~SMqjJ zCDo+76{NQt^S_apene?)tRfC&h(oHt5OoZWqTegfVK?92lSGFqeh7#kIK<>7QS^QV z$?aC?uO}uiDIHx37bjm--)D>ORe>R@85TuvSfB>E=_#LA!;a! zqGv47U~kaZ5;YW8R!xd!uSpiui^@OdpD(<19#T z@1w8S(^sGYrz#Gni-R1p3Us8ERK?4QDkc=(xi`4Sd;As0wE+lVF`fw8hno83?HtFPqW3R5T=VyQN^Gr zyXm4zZC)ok<8{)c5Qf+mQFGy}T4}LZ=`NX>6)rDi4 ze4l)nD?U^OhNx;}6ditnD*Mc&?RHgY)QJ}N)|b=1e6ddz7;+V%FECJMw>*C)QQ3qE z6Y9_?H)cx<)|MaSi4QpBDndVDNvr7TL|x;{3sv!cK)lZ(CLa<-r(uxXej9komb|bU zW@hY75qmkr^uinoQA;R_uEju${burnO-t2? zYOrKg#k=X^T@F#j$S8Un0~PiLdOT4@EzAd~0oR6g$Bfe}L6I)WT&8DJ!OljpfsFkgp)FC3B3kea}3Sm>Nt^%8Oxw2-XWt!ii7uP{kV^#Ty)=(qU2bRt6PgzdvoYDJ`u= zZ?$4in%Ki3YAB7er?MmyS01)$Xfk_I6|d)r*EvKzBcklGEQ!7TLoMooDMmQCXm@L| zn?ux85@o+-Nxs(~OwSu2}RkFS(3i6#ja;K%*}#1B(K1%S`JwSdNWIU`QD#I1z1@@GrgQHUgi*0 z42`lovm{@v_t{jS+iX?5lqz205ETrIqDQl&SIWJK3aZ8x!Mrk6>`D{6I7AJlQTAz; zq(bkpX{fH82+ujOc@!_^h!<6XA?g_&9mP4Z&s@1Xxt@ec5HAG93#z~n)m2AFvO0Ue zx~pY%vD-H~ljf-q&vz8hs{%t*Ix1SuN=Mi_>z)5mDb)SWHex4-sBKuZtfji&Y}Zye zVhnsOJeMY(;}A6zMMtm(`y=KZi5lS7Q}qOx4+h!Tktud?$k`a)QZ{b4DXA%@NjcA^ ziDy-TA!{gYNyBY64K!C#72DIqb`DWPb+m*v*jwvXn+EzRSvb1R{+;_wNAZj*Fhr%L z(PCC=@9MWCD#b|>Fy9F0*20g}r*p*99HO4$Xc6nNe|g@VsE2;u)mDxwg(tqJvcyvy zqL#vFA#1V!G`cB?me|amCo{y8s=yF+NZ(9H7p+W~`S3hz7X(Xpk5BO)^?vXD-1`C8xWC|i()*xyv-bvX6s+6B z-eul7-f7;6-U_g5KhfL6+tHirO$9#$e|vuR9Q5q>yz6<@vqSzWzm=cLz3{Gnr+i#) zk+;k1WFx$#KSwTs(TOQ?yc`Yh=Lg7cusB^S8IUe`Gk@4PV0>)6ZMLybQ09zJMf8XiN@kLurp?fM7$9$44lN&P{Xn{b03)z^bV z!e#m#eHy%VuYh?9C+a=)j(RSsBE8t!F z4A*2=m20?bu&WomMbCGoyQE7ve|3Hf@6Y!-cRP1FA9rqX-VSfh8)3}l9On|}Z08hs zXFl3lchzUWoQadQGOb#h z33CMQ^W5sW#(hhRp)hvu8+F7s*g zVe>AS3vi`*vANn@Va_vWn3G|R$l>N-vzJ-mJHxlYHxu4|_tCn*ER9Ufqbcy-`+N0s z^#gT}`hxl-yz$r1Kd23^gK&#bXb;^;y~KYQfu9O%95UBDN8pWv!rb-f#Jkf zOM2Ln9%9L>n>#G&X-j(Ck{+?72P|oeCEagH_r)Z|e8!TVu%t&V=|Ps1|7Ti={4x++#_vTheYzdd-qvwWL=_lHVFI z+=*8)N-tUxU+oyjS362Ot-a4#5?`mdm-_-r+!s*ds}3c;ic#YJffDx*l=zxNiLY^# zxX+-(eFi1IVo~BAfD-p3l(-+E#Qg{*zOqr`o`Mqh6qLB9pu{}|rF*Ti-D637b>d#` zA1HDEK#BVYN_=&q#8)v&+-FeYK7$hX8I*3e&cRnZ#&JJFiTe>s+>cPY-b%r}0^_)E zp~QU)CGJ}&ZM0HcWl2|B(iN5zwWNq8HCoc;mbAf=F0-UdE$I@Lb{TTLC0%Gq>nv%l zC0$@i=UdVmOFGYzR$J04OA1@kxt4T}C7o?aXIavjmUMSmbBcGmRZtLOIl({ zi!Eu9B`vh11(r15lIB^`TuYi`NvB)VY)hKO(oO?b6{5ZhQawvE4LQw{rdrYzORBS^ zQ!VKfOFG$-PO_xQmNdzdCR)-2OB!!U<1DGxl4>le+LFdvQk5lDT2h52jj^QBmNd$e zMp{z2C6!sy2um7nNu`!lVoAl8RAfnomK3t2VU{%1l7?8)U`rZgNhey;Kua3HQm%yc ztf>V-dfJknVkui1PmpAOFHP=)C~+S|iTfZ*+y_zOK4^X=P40OpUCdfQy2z5aH{xFI zjVN(%G(VFj_d%4n52D0<(ELQ2-1AW4o`(|mJaeBkxxb;r{S77VZ|0lQeSq<)sv*OK~JQg2J@Wl23PsfQ(Xx1?^C)YXzsu%zQH zsf#6bwxj|}>SReBE$KK*>R?IjEs1Lq%f>Z{QqbDl#**?aDbJE}EvdC7wX&ofOUkyS zEKAC?qzp?+x1=;nO0}dEOA1($-;#Xr)Sj-GM-=mBibLsoOWJ51=d~n{C7G5aEy=JX z-IClaO);cqNqp78x?Ym6I+Pr|_awvk+miT7ge9inw<6sIstw~eOX4dL7EdycSaEz! zV%#rQ9ABLn_Y=qUmBwC6de4&HWvQoxU!-(4klwPSH(BZ~jXf-NmBwzCx=7Uk7UguJAALH^A@ziT)~onLh+006qK#FcUr-#sG9!H}I(M5R3xs_wDuV z@$G_ffNd}fezR{Aj09}(t@DLp4*UXNgKvs&qOS_Z1VX+6z8<~;7!}C&1z`TWfN_CC z-UHtK-n}p~unSfn+~(Z^V*{ID?)wJsIv5>T;a%WufSKZSk-|3mVC+z(?0d*m*#@81Ta2Akz3xlwL_ zaf7g2As5I77&({-w*6%?1Y-w1WC5)4o(-c1x)iX=;UO45*bi;F$JhlU2-}P;VAa0~ z#t=3b>x{6m0!9%Uj48%MqYB0mLSWI~!zh4}glr>V=r9xhsD4O4pzqiB!f3)SeY?I* z-vZ+ao4_gL27MijD6G&I=neW57*nXy%k+>w07exGz>Ys#55Ph>!hO_z2(0+`yZ5^H zxOcg?!`Q+W_h$Dd_eL09SO;q@u5d4a@r5bwiS8<%5^?>n)pex%I zaOp7Oa1?Cz4>tOHL3D?AHetYM00qNfV{ z5QIDfJUu)Go*;}j1U$M&m`7p6;efdxd=Tt`F^BEuHgk))8Acs8nj6e@W*EjD7J&bO zDdt2Nc_=eO<^XMvwhP8NwrN|m&Dtgy>DZvH1232>V63A-n*!c9t6;<rE$dhN%&! zn<{adsSu}{4&oG35bNYW#8c(p#8c#7#FOQp#FHdAk%0P`EPp3XlD`or%A>>y@(6Lf z{FOLP{z9ykKND-@PsD0@m^fDcNUV~Fh?VjOVuk#kI7WU)94)^kj*{OHN6Lf5a``o} zOdcSPkY5pp%P)zg@(W^#{G3=UKO+{&Pl<){U&N5yPaGycAr6%v6Nku;h=b*a#6fZ& z@kIFnaiDykI6&?t_LuJw`^k5SedRmEJ`%iyK)v;rZxMURH;Fyv8^j)R53##^o!Cw8 zCU%vt5l@h>5|5X!5WC2iiJj$3!~(gC*h#)f>?mI#9w(nCc91)X?d5aCc5(-?t$dak zl-r4It@7L`B|AbjX{CLT*CBY`YtYf6E()f642Kf6D8Kf5>ZzzsqZgzsakKN99K15qTBy zS9vAz7kLHoXBj2_BqPMbvXS_syqtJQZXo_3FC%_0FC~5_FCl&_FD8B?FCre4>xo~> z3yBBhI^tJyE%8fv0r3lYKJjz8hWMF0kNBxvP5hT!McgmL#82e8#E<1U#E<0J#1G|J z#C`Hi;s^2!;`?$Xaj#rKd`~VXzAKjz-;qm+Z_6dbx8!2tn{pBH4Y`oGM=l_~F6R?> z%X!4t1Q znzx!I#9Pc_;>~6e@g}p7xXBC=Z#0JyZ!m`vuQ!JfuQLY|uQdk|uQ5*~UTqE}ZZroF zuQK}+uQdA+uQ2-(qh=ps#OzIMGncaz(n%#((m|ck%nX5nFYkPW+&nWW=G=r=5fR|W(VSVW_#jlvmJ4j*_IeKgT!;qHpFwxeB#+= z9`P(Qmw2Yxns|oUin!9uA+9j9iObC_;xaRnxYW!bE-}-Ii_J9RA~O{!Zf7$cUu&f%lZuKJs!&?E}9*sC{6TF}07pR8srMOC+_A zyjW8E$crSkk6bUQedL9b+6R8UQ2WTWlG;aJAgO)i`I6d4u94I}@;piHBUejmADGch z?E}AksD0$QlG+E}p;G(Evn92UJWEph$TKCi56pw6_K_b%k6a|VeHO|TYM%u%K%6iA#Cg(3oGZP=InqNsU7Ez%QW9rLgV-Q- z;%U-NoGD$zdg&z2kQ#BiREg81LYyic#3@n`>x_Shry73~Pci-?o^1R{JjwWjINA7} zILY{pIMFytoM0RwjyHZKjx&BC)*3$(YmA?W)y84sSmQ@xm2rqzY5YK}Fuo^_F}@>? zHohf}GQJ^>G!7EWjjxGi#sT68<16BD<4a9-nqNk+4y^ZzxREApZD{Ao`u}+nS0MYbNjS= z&e4kCxpcdu4EzB6)81zH+g^mH!czF+d^Ko5r-N?uW@W1UrMy$FmKE|KSx<&ZFT?2u z`c*}^rEZH2f5VptA5GXcShn4#1#A(wG}YCCL)_Xq3YnZkCbJOtHOz}}i`|xeHHOzB z$lSF_g_SnIo+dKMPbRStr7ehX1K#rzcj*`&i?sTNN)T83m(mBJpu3WZF}ClgtS z@@gX7ptofosNuHAV_wFoolxpWo=g}*CMYySS+gRe*e(#uPH4krku?Y1Pm}SfWIPK| zKv{%a@wROFF`&;A+8k38nw^0^%THy&;Ta6h>#wY|slw2L*M!7Bff(^|g8BGS4g00s2 zrqZ(c&}yRxlhG_hQS&3*4!31KT3TKKd8b*o~QWPLXD6Txht!-O+(D|1|9PF!Zq2pg6g;}JKg(#&e z!i{WO8r}J)MGB54)1ih!3UWvR3t4fvoo#Dz{;&uF%ZM#?Xs}Nq`B@~Ng(ziqgqzs5 zZXW*KB83m^KpF`s1VfZCFTzc0Tb6U@Zx#ut)>Q$%*m>8%#$V$16F&=4+S~{?ux%OO z&R?z4n&&sw)PpCL^6I)8u-vSWydshZVIIk2!nl!btFT`z!b;~ifQ}P(Kkl~1K|VN- z3}zt;tBP<#+t!Zz*&=KKmdxDyN^)~Zu0lf;R1@JQwk_+i^Cyd-`qBn83`|W@<0gHQ zGlb-@5M|AYaO2um8}~n2WWly%(8A(ZRD}%6C4*Rqk}4wH%C=RL>IaLY+PavS>}-;) z5DZbwya>0pZ5<8YClLe7I5TbzyM)nE56SYAEEb})vIsY^ZMptAzq3eV7X<9M%uJHW zLKIRO;nuXRdojPY2mxEnpuq?-GBQX83sJ_52)Ca-Jn=5W`He+J-8_Y)XOeUXeIy;T zFNkm}*_N9W=hv3(jf-o*ClDxB;R4cB2P%j#uv7C%DhpY=aP!#KcKOO84?Dc3wiy~X zWiUyBFq5R9kXaFK3)^yc;{4Jg1pNak#G6UH5T+6@3YZOw)^avWZ6_ zo;2b?2~#32xIv;G<`Xr&J~y?RP}8fo8&tiBiyY)3t{mdRtaBp<%L*z@xThWdnJRmq znJP_8Ni0syi))R6ir0r;;#5F&j8G@wGa^oQqh{^iPZL$vP^XFLKBBV_%TgWDS$504 zi}RDj?9H|FYU>u)w!jAMM)Ze6w82DUA&Qz4(U>Ufg#LISQQSN|apc0Y6Ae+)?1+O& zvi8nLiIVsxePT}|pnQxWlVBf6!iR|xnrm@0v_foY#KuCDFe_qX60Ae)gG33S=mM^_ zh?+`N7NUUCh{^<5=kEK70_vObRtMB%iIPDS7NU$95inMZS`XIFeJ_a&P=fancp}0O zv(JghEW5Qw-nC?JsH?9>pH)n~laO3O6dE!~WFSfJ3@nLNNy;VY&k{nER2Gq#BYnc_heCc7qt=I_jEW{I+wzC@+#*H=Xm%^p65&l>vxj=qyD-6 zE_@;12X^o7g74#3=ojc`!PoH<^d9|i_%^;spRbp}m+>)rk)8wJ#qHYf+IQL~+FRNS z+P}dz{O#Jc+NIjL-~r%dunK>qwn{rxYt(AA*PD+_nYHe$0zV5{3XXe zux59Uyhq+IKQ6y7zb5}Ef1%_kDX?GsFJ+Q4N-0!MQI1!7!1lm$Wr^AhcG$|*Y3exm z;_HW<=x$Y2egoSCpTPItm*5@6Bd{0!X60(-66GB4Pu?%RA9!E)KIeS`yaL?ey&g0m zF7)p7o(3KPHozW;Ro=tA&7cEO?wzJ=hi}1ilv%J7VwiU@cm&Wqe|o<6dpYiv&VwBgr+AL@biw|I!#qu%xv=|TvS*a10QNq3JStfJ|Jwbb`*rtz*!OTB z*!;g5c0EMh+uR#r&qIfMrF$vtc&KvEaF2)m4tef$w-a_d{OI}|Y~j7^+UI)Mbr*b5 zzXELgp9SC3PjL0P4u`Mli(K;zsI=ExW?EG z-_Xwh8~(?@7xa*Eh|vJw&u1AEjS;YSA``xdp5W*K%Ye%qiyZSEWw5JY4A=zBfjtFw z`|tK|VMoE6_UG+SzI|MLkaKf^YeUk;~fGq2=@Tb?aO^OyYc#h?>L|CUJ>L z+-wrpn8d$Lf|~qCf%lm)cbdfOCh@9C?B_&rrAdt7#4t0vJC(<{y(Z!2go`>Jz;jV| z1xUPSX20BI-ewY8OyVSy_=iaxV-o94;z*NNV-l-OqRk{)OyUreXf%n1CQ)k=RVGnk z5;INWK$GyBM6O9>f!FrQP_Gux3uxk>QqK$OIYI3g)U$$mMo>=+YM-E<64aA|`nRB- z5Y*#>0^=dP1dj>oQ9(T-C{VTMd=ClgK|wtrs6B$ZUr_f6>Rv(JBdEItb(f&-6x1Dp zx?NDW3F=ls-6E))1$C34ZWPoFg1TN%*9q!cL0u!Le+lYpL0u)ND+TpWL0uuJ%LR3r zpe_~EZb4lls9l1(SWp)U>Ow(XAgJ>Nb)KNk71TL`qV6QTE%sC8#q6 zwL?(b1$Bm?P8ZZRL7gV3t%BMjsLg^pRZyo0>SRG}(iKW~wD*iUNl>kV3Nos@ZNyc4 znz>Fh33EkoiDhv)Pclp%!(1b5&+#PNK9k^6q-7l`p(k0_(n^Xc)!E&XI)qUxI#csF zwLEo+pc(|_X4II~#mAad!5Wjw{=uX&Rtk!rW6bLG(PmuQ(I%B@Hz{AbNx7Dpl;bTy z)tQu?O;>PlVrPR4DBJsHstoIS25E;lokn%6ZyUGpKZ3FvQ0{@7t|O|O(|I_DAv&(Jrha}<8c#87IA7^$svMj zVpMmJZG)iLFzA3duNkNQEU51U^|hd07Sxr3VsjLvsJy;F4K-8cd``8c4K^w1O4{We z-EAS0;Jvn{O)F(w?LEa=l)|gk2tf@O6rU21%7!cQ4HK#C{1{gx;#fapT!DyVrNg*@ zi1Q1I^*yGt$%YiG1yXE8B9$X@3=$OUKTM6)BU7Yi2#QT23TlR+#E5W-5#bUe!X-w8ONOPYq;{-KUP;6CO zw{8qE?+Qj|Ea$1CU8N>v9AQ!pwpy%PH`;!I87KY5ubM>~Ckn@LB4e{jn785Sm-3kO zGdSU<{=?uV#r>8U^OQ-L&m!(e%$NsF;(n93-6YIM8TYkj%s)+Hw@F-V5*L_6#3asg zdiKKp|D&bN89~U?4q? z|CzqPKsqV^@9h7F=`#i1zRbn_G=Mc6t2xf0c$tgtM}v1Xbe|a@-Dd_!_nCp!1-ics zbRy`!GFQ|^_mhG3O}dW^-t5r*W1ulX_l9P9>`3>80n&Y8 zu1zkw9}JN02Xk$7(S2a>mMEW=>jW3w{{_c%|Cj3+7v1*-NcVjK(tTg9CWG#G0;Kz$ z0O@`wK)T-vknVSKRT^}k6CmB^1W5Ne0e(%-S833FPH;^3IT=40|H63C@i?F3c^uEB z_>=KZj#p6p!`Q{~VvZN_^xYgUK?L8Gmvg*~Ec!zN{$E!GA$bPD)9oI{!<9Z2oTrZ)H>m}52y@WchmoS&>Am3BS-a(M-9R#`F!FaA`FrMofjOTg=luvadIsaUp1}yNS1^L>6^!6|1tYj#!3eHbFoNk7faRLK*bjh@aeS2HBOD** z_z=ejIX=K~56AmC-pBD?j`wi9o8w&^@8oy~$J;sH#_?8;w{X0f<4qiIp5P> z@mh}8aHR7Z>PhDpAe~=;bbbNSc@0SCH6Wd@fONhB()kKV=QSXm*MM~X1Jd~qNasHw zo!5YLUIWtg1dy&LfOI_pr1KiEkC!vbF~V^tM>_9;kIs8QI`0ALya%N79`Fp#Pv<{; zFQM}tkj{5NI^O|LrF?t2-oRe2H?WuM4eaH51ADpNz+SF5u$Su%?B#j`d%51gUamK= zm+KAe<$42qx!%BDt~aok>kaJXdINj8-oRe2H?WuM4eaH51ADpNz+SF5u$Su%?B#j` zd%51gUamK=m+KAe<$42qx!%BDt~c;7*AsY{>j{LoUOK#1!Fgt%Tni0cJ} zxL!br>ji|kUOK#1!Fgt%Tni0cJ}xL!br>ji|kUOK#1!Fgt%Tn zi0cJ}xL!br>ji|kUO2$>%(B3tq<8c zTNko*x-PgT8??NDw7jm7#tV2pKw4fvT3$d}UchI0IxROGKh2M6`Qi8}eoX7(Dl(p+ z$3+IM2OQJ&50KUekk$u~*2m>HX!!x@I_JtYXt@FDy5`C<=sE^S*D+VBLDwxnx^4l| zb<5>8XnO$Cb^xU907&Z($m;Jl=sF0;bR7hw>m49n?*Qp~2T0dDK(^k6xIRdT>w|=t zK8Q2K^$tQ@?;ynW4nkb-AjI_!LR{}4#PtqBT<;*n^$tQ@?;ynW4nkb-AjI_!LR{}4 z#PtqBT<;*n^$tQ@?;ynW4nkb-AjI_!LR{}4#PtqBT<;*n^$tQ@?;ynW4nkb-AjI_! zLR{}4#PtqBT<;*n^$tQ@?;ynW4nkb-AjI_!LR{}4#PtqBT<;*n^$tQ@?;ynW4nkb- zAjI_!LR{}4#PtqB&P>=)z6|awzo6r-()gU?XBrC;SK5`2&URC`5x1ir*yuAQx&ptWm@ zwMwvXSFEMOm-p}Ct2^4YyWMe(;}S<7_>MctvBA;lXmcFwSO{L@W;!M~hCBR@42J>! z;(oG!VSms5iv4N(Bj73SM$inn(0;aki~S$qBkl-$t9`M3fxX;56}-a@wddMX><-%> zw(r0%+*`I6Z2z`BV7uLRt?kkTON7^ZFY})3J;QqvSRz>KUG7~B-{4EVlf5J1c`w83 z^!(-d(({JrSpe3qYX6E=gG_E zDasUM3iuw(F%0MLww=mIB~M9lehGF7_JbwE+dzwcnymyhl+FMx8@N8f{)%Fou70jw z=JbNyiI4P`l!dldTfP36x?jBuY!F-pp5|7n3)M6A2zZv$l+Tp?N*`#gAEUIYQ^3#Q z641~%P%qHkiYoske*$|X_R06l*UJ~n+vR`AopOU*scca;DDBD;rAC>m3|9szKE)yb z4A%DElAo6!lkbwRm3PUf%g4xv%LmJ~a;ZGArw#qRgH!ZZ(24xYc5o@awr%tddeFH7 z59D9bi}%XT6`{_qwXHqfMcwh7B?*aZ`X3kmm2kW*;rQf);}R^6I9YlxFG#3;O@dj5KZ7@9_smvEp`jgV*#Clj07BKNf#*ANr#PU&!lPdseJQ zr^u8Tv$|v%En!D@_sW)b_=H#dE@h<0JxBMnbhq`itVf^T#qXe}?Uf>7m6_18uBWT` zZFGR#Kd~LWbhotjfK>3)UHle0v+mEZrmbUD&+6hg`=1cyu0S{4#cx{?m;N~%)K*}K}hJJ+mlD}Fh~ z+eN)Oo4hZjDZ>RXdYW$QDt;up z-Mpf$yBkuvd)M?7?~gSAs|7SnM+fvXc;qgAHcy$&#X&6itL|OV(-P`kv!(?{b@4MP z%21xXybD}ow-rAfD^=^tmFC&^`IJJ=x3;$jI_fEOj?RjSv%7(tp#Vc4)#LI696FY8X=B=^9w8@s%?;1MkVCA3u=FpdUIYML%y)ihcs16n&vj zDf*(GQuMVurDRiHI{iq3aq0Af2&KLhsUHjKJwd%8DEgs;=6FWLJtZjm%ATg)X2#jJ z2&zX=jV7hOE-3nHAM>hrh`37xwM|g;^*rUHA2ldNKO`WfoMZASXA9~yLD3I~l<#;E zw_Z?33Tlm@+68r}py+1-Dy2@u(a$9`j(!HA6#b}yl>C#)Cx0iX&jj_MpxzbK2q)|- zUD?*rxi)2gjNHY@HSKGq3w0%ntZW0ai%zGuHEl2(sWbVut|E^$uJAy*L@~a@JC_%^ z`X3igqEnEiuULbw(uBP}uBbY&#egYtBAw!o!f z#p+=rl0|yr@-nvJmKZmkFm0h$nAhE89jhcgYM~A#x*b>2iP#ouS>M*x4HJCW3@)Ul zr>nK2JJi-SY`V$98;dm4;&irjf#dqNE_UI_cqdupOEfFxgcGi5%Xlj>;)Nl~OuYK6 z?Sxt1*=2S}3*8((?AO0d?TxLA-M!0uHmqywF1Vd83iNW()fO5$q2FP_ZLzBkE>{J2 z#*T5-DGKyIF06?yo^4%SP&`=h+B;Say=;K^dfEu|>?=CgtZByzXyoTUQ)Wl$|8bXN@Z?O%gXXe)TN+BL1jgL;R8B&G;kbd3w~|v%0No z%<6*K{ny#i{SJpc(Esqt{)hAFgkWnlAIv^>e?V`EvU=hVrm@p@!AydkC>JwHxY&1g zZ72dw1-ONwYd;(oe$fALM8Cs=d;1;QuIhhyY5&9X`yZYiI|RQp_G&tR+o2&c3I&Y?D_JWcnX5 z@~as6NsN3yM!p#%Uy6~>3R2k@BOi&8_r}QEW8|$d^5z(MLySB(M#d_yY>UO793xMN zk;lZyqhe%Nj9eQd4~vlp#mM>?IX_00$H?h1a#Dj|=Yaf2{7MLzxO|XTRP5Qlw z5v+%yUfs46X?-c#5hGIsss0%we~pnp#K_NMg zK9j6RAu}TApbFI6Pz9@>(=H=us<*);gNGehn^&QVTMs$GLwfQ^4`y$Qpi3&uJ~KhZ z&6sVfxM6m#As46T78eWtyU5CP(xs5DG}47)Ya`q{)q+G_Mq^fxG{$XHI0q^ zd+*2sa->2qM1k`o++USd&w6H3fu;^zBlr@+K3o?d>sZLdaraeLaWj&NGs|a+>kN=i zgscNFk#%O zl~ve*0}6{x!NUv5;R-oCj~tG|sv_LSm30bE9#9ynTq~sAPud~OA?>VG+^?0jRFei2 z6kB0d7n0QqS)E5#qp*1q?&8X#muyTNP#D-7X+{eQpntonh^&IpPgb!yaz|IzI!;I` z4gK*{&97UmkdU8*Aj}~l6f`4(ey)Sf$PFjFIldT-d(6Df2vx*p%D59oz5jcJX5r?LeLs^I-rboDot76MC zJ2FuOE;)y!kwYN#l0z`}ff4j*g*|Jzbc`?u2Jc9nEX6)tI*2UAobw~-whD3x@6M`|fA1=noUWKZ*0(yWl?;iMVmE{SlTRx2!Whgsy-RyHlJ zYnT`Bzp=krnuZAktYkEdCJiWiPK0~AvS|MrLoKrB*VWaxRDhG&a%w_gVJ=yy5DZaL zZG?NhvR-zJERt$!8=I@DYRYTSzDZ*f7$!l>M|CBn4#EObhXR`-Du~fUzB9P8q zu5(U}-844Wn|3Z1l#m4q!4SpPM7RSii+Kv8z#?`I7)w|TUh{;xp!q|{e1%|$vKBm!R%X%%yv&h0aqK`}J_Lfu! zNVP($b4WD`S{#|l1hrWDbBIMyTqB_?vzGalbHGXn7_VrotA)!|3Ce3=O%CtyBBMmr&XQY!EEJP7?kx5L1wbe5$ zBARQ#ED0FfX~YQ{GXpcdkW5zyhA44CWFnJjo%rb%iE#hUEG~g*AU-e@GOd_QgD{^= zLwWNf6PP^fGeMd~9^4kd3e2tzx|d!9PVGr+uN_ zsU4%ugf{_~!4802`!DvF?6<;~{v+*m_R)3&zUV(@yWDmXe7Bx$8>0TEz5?$CB5F5$ zwLU;~!x!tv!K(Ub`91jo_$qxod}E#}XOSPsbL2*{ovbDE$Z+D2K7hjg{m&o8cGigI zcI)r}3^wyMW~9Y!oRv3$JWrnYN3q?Ka-0bq&ynZ+QM5allw${Q>?iyEQ8Xx+lw&(^ zJWHPSN6|=NQjRl#;~DadKZ<7ml5(6598Z&{{ZTaLmy}~0aO@-d{86;lmz3i);CPBW z<&UB%zN8#mf#XT?q(6!V_L6dJ0giu@fBU0oC@(3;X5e^&JmHU`{kxrsMR& z(fuUp8ODiJQdb*%s>6@G-79+6b+@#3b+vA2=|Nee$io%n;b}C4ug@!Mqi8lxBYMrC z#2e^vUM9}W@|dvFuC_(+;do_LXICwJ-T@8I0G$8f7V@y0JUoItjO_j>8jefaQvZN< zc!)gYkD^hyq#P#z$AjcSe-y2~CFM9CI36Gm_@ijaEh)!wz_Ewy@kh~8TT+f=f#ZI1 zzdwrB*OGD^1045}`}|Qfsg{&u1903+?)68}PFhlqqk-cda*scX2GEjn90eSAle_&< zG;5ZWV?A)(Meg!P(Og+lj$YunlicZ#q9wAV96i8s2f4!^MeAZoIl6)4c5=Hvil)Po za&!U5ZR9q86b*wVJZY8(+qiFjpDaShCxP{!}kD@iNq#T{VaWlEuA4OALNjW-z z<0f*GKZ>@vl5(sCjvL91{wTAxm1Hem0~|My8~jmbQY#6^5x{Xhx!xZ|J6TE3ayW2Y zN3Qcn(G*rvj&|UW zM`zee(>k2&E+xBtWOsnYnDNQ`hO7k?hrm&@_rHAcap>`8n;^MpEvHOB_ zvP&Vm(#S3pJTt0*V0ZzMJEY%wCS@2a@{Cr^fu(_cMcuGx1xgE6rY=q)7dy$tK5{W8 zO^b4?RT-B2%SC=xIm~>Khg{?&7rDtrn0ZDN4OL;S;AV!^i(R%ejMh9^p)C|&dYxQA zcKOH!0dfJRjf+?!Zu$QWsPUw)V=12zP8!AEjXd{eA~A4^mf2!$N=jj+9bWu zrl)$ySqeGJP0m7L(<4W-7D+4YU!yeRpgf~abF6D!Nw4(e;PI0t!#lMzQ^}c5a;A%% z2`N(}N3q<6mRs$`kXyFl?lg90c!$3|n{0QI?dfDYMo*8dXL(Z+dNajXM9{sp-ig|EoNDdc2@oa`efE@XukpWv9EE?1q*?8{eAE^ zxC<-+9->dvv$Y?!=e3)_^WC9ZvEv)ZwP0gz8rYM206fvv+I`?-?rhs)^SoVtZn@BJ{+HKJ>%-egYi`|Ze2lq6G&k-9G;8IV8uI6k{nvfz()e=y2!E%hP86LY_TxpC0qp3(lVK5RqthGxN^jLDOu?A{XRPJ97i z47`paEF-8Wi~d_bGm1Br(Er8xI#?OiA+vca^IBZx>v0CeI=?`Atk7MEH6IdXHFA9@oqfyEf;ToF4eIV|-bZ-FoU7lM?g3gn3(gV0#@*6^hG2 z%K#@0+=@5n9GthnsZ!^Dk2h|R$ zfYgYpJpr6)x3?h@Bzm{TNfPGuNR`3qo+{_@^cqtS+3S4ZobF{@K^ zQ!#2n6mKb$=6VuxvF+odVI%!|&;=T^Iwdy+qsB(@J`(4@&Q0Mi~Wf0W%HCgFG-I1JhFNAXrK>5H4az~Pjg{wUtWCFOVwIAE#rNAVUd zDaWJ0p~;#*inm`$IUWHHhwSi2R}RGSFmTvqyFa>OAdZKC!zSDO(d7eiJO~`Btooy^ z193b69Ez;?qss>3*aIB!^G90-;(FFr>Tnijuk+1yG`2%rW0~}wHFa6PZ19AKdIKCiX_@i?N;ATkVY_}1ddP1r~c@ifjIsN9G{R+{L!j`IIaMWkIBdWXyrg0mjlN~ zfWTPu}-OO9$e(1UTL!@A;#_fjD*n z$GhZRe{}Xh92Wz}JLDaIbk;x|7XioH@kAEq`>zKpYnU$D8C$e{}jl z9Onba8{`dtblN~1=K;s-?@zDxR_ z+4CF7*4qD$oxlHQ?Z*9gEg=5ySQ$+AF5^FO|7n5$w7`E_;6E+!pBDH}3;h4P1>rOig=FSjWaTWo}*MDbwtPmX_Z{GH+=^;eF+aQvC$PZSrb zKXCk><98gtrMN)-n&Vd-zoa-FF^<%J9>i1odA5K`?EwN(`*(oU zo}MjBrFQTDsU18(YF7{N9x5kGrFQY)_%42YCr4^$&z7N5`*^lA^%feRqTWQ&tKLA- ztzJjbP_LnASFh%H6~`+%{*$7tUe1x)`?SgGrFaY;pDy7@?R>)V#q{`B^+Jvpa6F&l zx9YhZ&*9j|G0HK*aVN*KDSn}z$#DnA?Htdb_=&oW<7phXQhZn4%<)u?r*J%(<0g(L zQG7)`kz<(SKRBMi@pz8MaXgmeF%(}?kEZyXx}IY%#~zB$s$CSHP}gzn8Dl zj*T1}I4;^pcbj#U(Qs}&r}DPE+Oatv~uO>w6>lj97I z(>YG#IF;iRjt6p_%yAOM)6@wZ$8#LVaV*CJIF8{sn&T*no7E8~`$8iY7W7J%H{y$QFT=KpI8USZ{+rg^d2(R7qzUMyAE>GCA0>1wb z_ZaSP!D`-JU@z}f_mN;H??899>nqoDt~*?3ySl*F++?tTCmEj_&wy9CKI3Sk**MVf zIDdeB09QFrb{^rJ;~efZ^!M}!^mFx1;16(tK2}fB-qs$~&eJw&9okZ@47~hljt{}F z-}R1&<9J7_qslSb;Rf3Rui5Vb?{X*ESAtH#NV^Mk3LddtYCF-k%vNqIfR*Dz^-=Yo z>LxV={{054it>r_ymGg4E@&1Ut~4vtlmf+&e~{k*KY=&P=gTL`tHF}pWI129!~4V+ zU`z8gBuX}tHc~~>w6C?7wL3IPBDdAl*K^0pOpOX1!Gptf;YoODyyAzq0*!~oWuadk zg*R+(5gHy#Oy&xm-W;@VVHo^86ID>8$iKm!amR@H<7NM2r)e=rpS_bOdAj&Ws2eh!! z$#+XlZF#je=hv501zf1{ce09y7YOjQr+OY6uY(+z9 zRg>pWQ%HTkHuL;uwi%C)wVCHvv!i$twwdP_Gy;U;Q6bX(O8^Y~;Za=!)xK<~#Qj|0 z%^eaON^6=tKjbTw$r$FB)>br@m)2K$zBikcix64AHBZkI&}f9`N3)%IWK7O?LQZ`P z)iK7AF}JSF^A9vqMavkMP*GP-wbebhjZ~JHsm=8;?!fnZa}&D9t*E3LmSWg7dLE3E z#ChQae1dr%C;&qt{5(9>Jd4S)$DClG`pQ{K%h8uN7PQfGpI<38B{ViS;&6m7{|%u0 z-9&40Wv((+q&I=H^JeIVh8j?`Z17wjpO>dWgNgJfL{HHbf#!uVZKgMRs9i-~{Ko3$ zrV4btY)Zc@KDU_|FaB}S&mi7p=qLa6cn)x_-ngW(sd7O}T=TwGsMLt+0f%XxAfD&x zxJE_??Yw~TET_jcGO}P7#hvAhgtLe~isQLK3_Yj~_5#?a@NDcS7a~RZaJBO6OH2k; z*c#AErYmftr%w!AF48=&=fwDoVC18s8B_&np{uZC|7A{47&CB27`0}lJ*SydJ(dLd zJXggH1)if{Pf(+myr(g}Y(WhhUpMzZ6^ z8!Gw2LI?5{aaE?K4O*ZSjpYqB^-Z8(?%CN-;C#^2Wixqm+z@I2<#vp(294VmFphw7 z8$G+?hDSr?oEjKn4gKe{=jFIYt8Z=qZAF@MTiiLJs0-@&>T$KXAVcM#!i!*m@Vsd* zyetl8CytL3EV0-K$H%QN^`&4`#O%EmSe2o0@$>tlxCZOT>)AS1Sz%5MmJ;8iNkqLA z*TU8eo)^taIn;n(-NbPAJQbe^YP2wnmzbsY+!|NL>bm&0zc_Bv&=joxsm01dv*2@L zvp%NM2}?C7H+x=)>)JTJxH^I1^7y{k6gMPza--+u zgk};F18Hg8MM1#t@{Pl}&b zp6B8gy^0#9!)@lhFz$+IruECbzet&9_B7ZANWK`|A6K{vSkYk7F;DPV{K;98sMGav z9b8cfr>%p_jL0g6ZKLPWxc&h~yw`|h^js1*)A`Ll-uG0MHqUSJe4LorP&pS=#o2QC zQCv6Bob>MOxVUbku?xVK5AC4O;>IdX;m-}8W8;P(P3Sk0-%b=rQ|l`lJ)b5DXjuT(_6F1JeM3d9=WZXFCY34fE zU&s#Jl`4Y;0Ie8;|J%Rqivl*HUp&e$5s*cspaxIV@M9q*B~|hP5rE{dtV&@P31JbG z17h)qnI$O*e=73gFNnnqBL$K07l6M~NhLNwhzNucd44cZk3S{_nZ++CNhg{IVaQ}k zhq!lER6fi}psx%BEz|{o}F`%s(-@H5pqbP5XM?mRW zb>Xa9suT!dysicj=uZtGKq~yg8ZT=}m`PzNv;`;wE2ob}_@I1H#~>6`!=e(A1z9ng z|Da4V9Ke53;4sE4BfA&}J2}u;SYU(9!2r-mf>;W{ARgE;4S#Yz1YxA;4>Lk;Di+D? zAV$mZrxBz~z%xL+CI>Nd7>W!~DCGyFz-BjcLZwD&56HPYHU+RDOQbzJr@j4-bfgW^ zP|E3Yc~F%PQCY*WfDn+6g3!DiR`S9DxvgcLG9z7@K7~a zrUc*&n_ysU3QH3MWgtTekl;bmR3Pf1G-2!&5)2QmS8+szq4>b#gK7Y!l?DQELSUu! zQUS;^2!N<&v5=b*8-w|zg0(c8XUGe`0Q`mFUlAp%wLNgmI|TBEn@VvrvJ$l7Lp>R=cS!}R2s%*rdN zyJGo+sdyqdpZH}ee@ZdyQD+#FT9+EFfyL`d2aH*<5=WWDh3xfD+;DL4x%IT?_ zc90Z^l>!gIY8ixBY*F6*v~B^jg`n$bI)or%2UHa5sG+DZEvlr3cS*p6{{s^Kf;8j- zh=Ik7N2y~WR)%Rrg@Yvc`GPo2AhRr~0cQ}Sf|3i$##>K1F^q9i0M1Oar9=7H0#T36 zPSf`QgEOE?DM28hcfyz;`A&oYn>PLzhIlw;C#MNG0pO=LqbcCN@+L@!(qUuL2>bC&N<3M&j^t+ z#xq%1bBG8AC0VAuOnH1e=#mKM2m>=pf-LwO8w>^zgOm+Pr~rf~N!2J379^FjLlpe% zn8t=K90j4Mu&zK(8OI$oDF$3Hl2QQ<(*D07J%m}0ZQ;U$QYs0Epej{h1f&Ed!bU-W z))QkX@AgH0dSTB~VQdHCKdcC0NDN2?Qn-MgU)r=8TSJw01ozl|0ZiQiL6BS$NTsz5 zLQGil$s5&d30O5f0K-%*g<`-$AZtYh(%>)_DnJ^gumZ8Td_ec^0?}R>p7%sgjUU# zwDfQgMmB+wnkvb#`uYMX)l#5TQe>$qAO$36*dB0tf@DWP+65yIiUK8)veob-+Oljs zT&l@1iD6ht!C){fEmMP!OQj_N*#|DE;Mzu4GFgHl>x6tNbQLH%*ql-Y#08{ai58F) zIK7;$svt+r2a$Ng0jbLZZ%bMbE?d>W33ZXUo5C!)_ znh($?>w#)1JQPJ$NJC|q{=i=X=aEi<9JD{Bx#xscxgdWL!48GOZx=sqTnYFr(FS=p{0V7q%6l$f(&S) zbT%SkW5n3qwN!!g^ zPYqNQ?c7mP^zp{KI=*y#ovx(H(wXzqPrB%cH^0u&uB`a=lDGHeFMhChYiih4;ydZ8 zv&--N`Mm{cCoEf5ah4iyXSn)LOC@KvywrSFkWEK-$myUx@$tvqq_ zaE~kS!7HO5Et_YD(HR(Ax~N>;C7*KQCiUU{yMnswak*-Xx@U)?Zrdym)$(lxyN1gJ z4MEix9=qJW%x#3VXNg)JOkECl3Z+44mBv8TGAS#pZLU6A-Mn#Aa8F4Fw4Ay*U8+hC z5*V+$C8(iVq}!kmd|G(x%X=VVqqN$0P(2K-u(LFnnm<$`4+cy0umsH&IKw67` z=#sB!yhI=#W>=uTLL&jZaHw!HyuM|Z!7>PE)}VaQ;Nd+|U=NHu*)C}~HR!~LL4}3$ z)e~t`fXG4UYG*(Sj)&;70FlBe(v^X+z!a9kasUKN>M80nfP6U!VTuat158M1C$!jB z9HdY_oTwJ1z$~_P}oPh3T6Dx4`22sFa@nsYD*GKl_5_Irg%1 zck7PRJR3=huS708Cv|lSS&=R+^KA|K#t%Mu%J|JbX}8a}d9PHpMV9h!ICs9>CHv;W zu=7EMv}NkTV32Iusrpptuke|YrjhVz`Qc5zjWEH&^?_vN$CQB0Q4I|(Z=nF&LePlKHfJNJ|SY3x?}Y3`;gU+-Oaa!n-8-JYcF%4NG@O&MFChGE^AOD8WF% zAN0OVf(S6UO5i}+p{hz6oGB<>Mmc~x9K<}ZjugRKAC$85!^jW!HE?r>JaDDMagwrd zbGk0sT#_1AL4d5x zGvF^B{z?O*utm72N6o+ho+`b*Y)Vpm@ z+4{ilUy=H}x)XHyhbgZq=PQSS6RlU|bLGS2p`hV#25E+y+h^e9vEQsdRIHH+@fUIh zM^m5IRUB{?X%6ZFs!s;jdX)XXgc z+^aHHVOnV)s^x$HFoeT@*hX*>at);d(8>*-yr23l6e5%zN)Kg)FnMwxQ{16CmP}LA zlu;Cr6{=<&%ig_mjkYoi{Kc(XH>Z#3^N^vF5)?dLg@G|FBX0q20S8OMV!#4U(7Rk& z?pcnK=Jui94^$&}c49RO0xq}a=i=3Qni^DILfPgD9(a|kjHvSbX&nUc0Z?%%Y)fy!d#V60YkAF4V*{wzxi zc=wVwpFpX;l$*LmyEiQ%+9)WpJSSQe#>fGZW}Qah;f!%PHjT##(F>9yY4 zv|5ax(1%J|kU7KBbm=tn2FS!(ZoXrIvcSFoBPR5r;#SgJX*Ac-@wuGy-SaVGX5V<0 z%Q|OL|EA$4DRY%NY>C-@$*NbKem+Hf$ZsiB5m9Isf@gU5|KRH@FY_Ex7>W8%!d zu}ng~KT(2@N=Txeu2f}I8CB_3m~>#@0W5#+pv3%MnjcN*wY7F2KqpoBD)b6(1s+ZA z8^d#2+Sx;MqE7oNKH8KrZ<$u+DZ{u4eWM{GD5-WuUm&KYSlFuJ^N zILix`Qu)tp3Z3TV2K>Ru5*-Gng@2GTeaQ6G>4T?ZOle;Ulaf0+QHn;TaLZ5F9I=5k z{!rVr+-WJ(vZi73%)VkK!#a{3&>#b?{u7lc%1msgn!aHyzjgJu(+1^52UhFVZvwRF zSl1-`Bx4e?P3;@XWLaC(7I4Yd7M++r(K#_~B5Tnime<;%D$UEwk)%Z@44IHRVekaj zqJ>O~wM7*wWuO)vpF2KfeAal@q6JKbwMFH>Y0(MFSY;BnXn9{g%b$|4sHV6GZPCtk z$;an-XwBi;82cE9fZ!38D40X`~clxNhSQJ7lVm&Zg{8q)ZaiWsONN9K-98JRVbHRKQ`!_tt( zAAi%3Pyd}p$OBU$G_F}CVc&7H{GC7u}G=2*h zKU%LsN%hY-!&hmetyXztF4$ zHDOV1QA$x(5o^M1Cd1l04D zK^U`SPTaIGu6CKJ#TX|n9Xz_BUgbCmI^G~~v`d`yDXtlHNoA<+nqO&OPJ{zv0t-lVy~5YAVa zJJAr1O&ObN{twOQ^FU_2Zs#T%7yA;7i^W@dqK_s-R>ml0$^kCr08E?N=Vs?luzd?H z_ywADOR&)7mWzwz;yfBsD@|2>E|wpxG-02?KRT8m|L2&WKHtIUi9P2rD@|^BSfM;D zKtpP&X=sjcp8>o5kI~oZ zA+Y_|0RHG_=@a!4dO*+AU0|pGXYEVveeG548PEf`2W$dfsa>S))V6A2ZN0WeTdp0X z)oK;mG;ORlOdG7Ff_}iCj_)0xI^K4?=y=lcpyLk5b>Mg4JjV`r^KhJ_%dy&Vn4`%t z*Aa9~c8qcqII`|I}o_PzG|?6=sjw(qh>?c3}d?MK@?K&xP>z207B zpJ5+wFR|yjw!2Pt9qT&MwaQgtTxy(aY&T9ejXNG6AC)cC8zXA`9kGgMi?{aT-AMI{)*Slx9$G|$`a{c0Z-}P_TO|El|YmLK= zLyTHumOM@_ls)7((>`?foVK3Iqt~@}p$ktm0oj1I-_Q@b9>Q&BEUI;716x4#<+yR( zjMNW9Kc0A0-`k@fjJvS#AkJ2OBRns6tjgSnn_&`?;KWVnCoJpPze`;5H;I{ayR=m- ztq;BQXFZSmbpDp(kpGG!^GVzflprI)27lJR{|h{e{%fAhNB?UcBY=ChXn8u5sO$0_QBfX#A`pIpH-T+rn9?E``#QLy=;UzhN8b&Gp-)2`Z)seT=StMz3Ut~xNF(un%@cTr&o7&_c*Bc zX%P*ky4yM&8U3=uE2y5;jx`=FcR6-}!)$hS> z+qxbu5ngy`@1uiUOc}G<{bP)FEHaB9Gs!0Xj=p1&x8Qw~%Kk%8)B`Q1W?wDhsE=71 zrm-Kf9-|K>U zK~PVdRNBRYI!{nhL5UVh+brTl3#A=z#<|7W+@ikjgUwV|x1gF$N`FyM`vvukp!Nw$ z^soMih!f|~?-g-(3QCMR{Ynvcsi1ZV>HhfAva1l?!U7pr#9I zs-PwbYJ#A~3F-hrjTY2ML6rzhaxoNMCH;D%Ha^MsE^FZEZ*B z_2$Z5$6Tm`5-jhW(Q5>CxS&=GYMG!8GcW4%J6l)A7W?kejRW3?jjsEzZgxg5_?!E! z(R2UnyOYs#L;*|90^)TozJNiKrFgNRoF+9)EC<6*7I8C8Q3-X;dVQdTneH|S&I&RXBrfj+(UF=k~T?|gdWqK}FbH?OU2UFn+k^=dptRBVYT^%r1t<;CcofU4t@d2VRP84rzY?b`D(^kM&f+p~Z zqgBQ6VkEn*)5_wcvb#y$Z{DK9dErh5?$vrgICW>P4~Y|9wg&t_V0+}oi7xH!S;O(ZWwKOub#->>PLn0By&PuK(`vR&o~X?`f z^X~9&fv3}By*=Kw-Vi*a9^_rNUKo=MT@1p07L~d*1Q9 z>Uqxdq~{T^ByhXu2G3QV-JbJ3J3Xg+PVxN1bF}Ahuq|+ir`c2Mnd1q1rh3MEMuMk- zA)ZW+*Q0re`&ajO?$6yHxZiZYQ>0bmy}-<{)5bGzI&*PpJRTwl9BG3FbU#w@T)FxD7u6d1Yi zro(O6oqsuhc7Egh)cKzCb>|E4zT+|H9_O9Tn_!Q_WzGwoQRjAe>v5v<7-u(lGiY-j z=3ETk4{PAv$8_gJ=V<3Jr{9_FOmRA$3cLaNLH|hkKJt z^z-zy^=NTEJh&(J-(LzlE)v~RV~;LXSz z+KbxL+FtDe?Jn(R?HcWJct6qyo)flc8?|G#9&N1_(pumx$wF^69d@{{dr zu;B2n?KRu;utVfg+x@mXY&Y7j28#|C*dn$wY^U17whi!prvPJV1437*VV2|T^G0_t}|Sxy27pvV2$Dk*Gku+V3VQ_ zd{dOVrnx4#M!AN%@?2RipG$Yi#&5>=#uvti##_eA#Dq3(Q~9N%jUD`U~A$x^?UUTusHFS`m*}0`h@zBdXIXmdL6v` z*`=Nf?|)8HH>t;~>(x$mwc4sKRU6g$YNa|$Jy0F14p$4*Ts2*Ft9Iotq3a$7cQd$)!JQ25U~oHw+Zf!+ z;1&iqGq{PtjSOyJa6NGa5;m^7+lI=H-k$U>|$^+ zgNqnk$lwA7=QB8u!MP01VbI4Q${@mECxf#YoWZP|aWtgDM7<3@R9uGbm$F${>i4@0!hE7K51#W-yq}U>bv|45lzR zkildIlNd~7FoD5%2IClvWpDt4F$_jC7{y>DgAojdGbmwD%wQOUp$v)`6f!7akk25% zz|SC$!4L+68RRm^VK9h6HiIk%nG7-*q%%lkkjfy1fscWgfro*cfs28`z{x;opfPYT zurshRfVoNJfJ*3_fJ=0fYA$yvN{O2JbLN539@uT*c2hMiHbs&4he)LW`Tf$O@o3v zBAQkaQ4w*+eM7~aam5{X$8p@oaU5sHaU93_&N+3v`gS__zVG*czyI&|y&o6S&r_$W zPOZ1@R#iv9`vTq*@UDQv0^Skuwt%+;yeZ%f0j~>qO~4@muL^iYz{>(&67Zsc7X=kgcfIR|k60lpqjRI~EaJ_(C0atQ629U!zFa`FfF^`oPDRP(RFqs!Maktmg(Tuw#Fmg(Tuw#Fmg(Tuw#FIBpZSSnzNfHMS~j*!C_3ph={sRB+B zut>nk0u~BbAYi_Lc>?ANI7vW_fH?wY3pi20ECDAVWa(6tES-vyrBhL|bSg@gPDRPm zsVHE*R79YnWa(6tES-vyrBhL|bSg@gPDKG5nIZxeB}=EGWa(6tES-vy1@kE>6I7He zor;pBQ&F;XDoU14MFD$-A|w?hOQ)h_=~R>~-6+cOBFIbuGXzW*FipTz0o4Mg2&fWJ zDIg$VvVchfCJLA!;5Y%}1yl$q7f>dkR6vP*P z2^cG2jDXPs@&t?$FjBw>0mB943dj+VEx;#Wn1Cz+Lj?>GFj&AK0ht0a1f&ZXC}4nq zGy$msQUoLm@Cry0;1S>!zy;_6GyyIFssN_|hXA_(MSx9!Re(hRBhdaW;1>b^67aKt ze+u|Xz&`~1h;tSuv4bq>`J^pL)ky>3i}N<#Kc>Wt_|H6KUy~RFK`Bb@DsevrNV%uz+ zZquwUTFYWNFkO$h{xDt!+O^rDa08NVn5qItasg!LYxjE z9%c^@>plBOAr?c3huA~Ide1sih|?g%{p|i>y=#vY;#3H6FT1y@cMXJq>CUk1!#oED z78so3G2b3K*=Iff>Uv5nl{a)v9Z0dkc_jv zUbYu~#`mrk(FdpZ&BMtQy`{M|*xJ34X2jXp&0co1i`|^WZbtdU-c=%Ua=dv-mdqDY zXFJ4<3FB5iC>D%+FH_N1^qjqTOF-6B3%>FZMg3q<^W&GgyWO&RPaFS{w7-Gr)3 zdb>akoCUdH6kAxMjZWa5A6&^P&cK0Xx|IG}Ap zFky}}ks8TC2F+nYBHJ~X?Mh?22C-czpWch+*q|i`Cuo{Wn#lBCR1-O*rt1c?>(bbD zgV=Q_pW1t-(3E*>-#nc}ny}HLijYe^J2TnNRJJpN?L={9udvf*8J*CsHKeD#wzG3} zTSvnZn7Lw1#ka9*2eNBbcI^OmEqYJs6&Bkp0}}EwhjgIPKx*JN`nn@#YuVV2fow+# z+cALczyOna(R>@!4Xg&~)5x<)3-m5BK^k2TV`JB(uxm7SO)|R%{mOdLcAHog&_}_E zq9`y8!swq@yV=z)b~R^Lqs7Cj-WDV25q*=MMKR%Jcw2Wzy;z6>)B62|#i!fY<;mBL}?>){9<~deQbFBI)0_%>3hSFF)ZdciM^egX0+j5{FwNF1t<j6PCS4_ymSf5P zUdkAKG`nCfyC8{OFqB<@377QNQnR^mT!xm1f6;Nd(nm&Mh3Vl=wq+E9MZa4Hu`L+y z_}-;PbC>ju7l`IpGzOe@uzJsA!L-w7A!S3@mXShPN$-*)Wn!|C3FF$Zc@*31Wt#`F z%_0+L94Ql%qL~oaHFG9}D#!#X8^Sh^6v|HQJzXdph3jVGYGPtkS#%6Ft21O!s&!s= zu8p0W#Lg9&TMYW(T*^+k-c0cEQq?IJ1$4qJ$IdPv)T&q*0KMDBHVtK)QrV^R(BCAPc)$cmNBd ze^u`(M^aKjN{p4D@k?3RhJkE@n{61tHlTl?cacysAmPTMoRrXDM>P{0azd#rl*C{G zatM7ZdQTQA5*8ZpGE%X!y9GX+;>S&K?Kvmq9QB;!b5LB;yAa~Scr^-V>O(Wh8TY(2 zI$lMa*0qkE>s>cw9X9Lu-UTAf#D$Y3K0a1;*27@f+7RrKm&&!NYxT7$Yf)a(J6}Xj zPgq1&Op)Phb8CaKgltXH8f}ed4T=hS=ZSc!eO5)J@*;`{V~r?b5ASjH=sn=B>_z*F zP_V@1!i5y4y(72^`y37n%~5N;(DhbltWH~pe;6$V^yYSP(62p9Ra^Y2BXg z)NUwkS9LF1Z-g8SPFS$)kH+qRPv-q)qHAzhTGya1Py@F~XyUQof*ea~T53D{)zO*J znbw)!iQZMcXao{;q$gzM7}9~2KzHDMYojBxBdsF?R`1~b8rq4(@+2%D%O@q#l^s~1 zD2H`Ewlg!&OgS^-OcYJ%on>TX6m~g0qT}s2(t(Rx z6$4h_sWYJ$tx|%H?1YuVqs6jwx;KP#tW$RRO;$qm#1-0kB6{?m z28X?7PqWtSZpM=vzyAl7!~dh~|NZ}CnGe=CY;|pMg!LSm|(3JpdL4_Q6_*U1|ir<8@!;EVk} z`(FDld&IsK)wGkQc)m*hRSRwJ9@}=^La+n|F z2jHvyKE9Xl;t{@;Z-H<2J-nSa@uhqbuYoW20bb7iJdgW$27Iqq!K%cM|5dw;$|2>T zazJ@V*{AG<@A464tFi@l_UKXC;j8>oWf8oUnxO=ga`+~nr}&f%*gZvs4TXNReP{d9 z_6e-nIAl8r-{T*$?X&H*?XpE|TWwoxA+RUWZfmkFwJoyM*k;%Qu~$}>h{l0Qc{fhgc6InOob2lGr+GcepW6`+1uf_aI&`p=l2Zq zznM=b+{334-o&R8?&f5F2j=cfA@>cuitu_~Nw|v#2(RO0hllUvlgNE7pGdfalRX}O z4JUg%{Ay12c=%PE?D4?ZLiTvz&2<@tzmk^{UcpNUxAS7c%XtyuHeN`0880B*%Ke0w z@?!}v;l~hO%<~B^;^PP}~;rA3)f}(+E3xDq#mtAv}{O6Si|NVH-~(Y~>!pmE29(!a3mzt`jcj8eubc5jJs^ za2aX2(lk`6m*6806&e8uwI9vag z@I?KOgtPQ-2v5-eKzO|VHQ`MCE5aH2mxR;xF9@gUpA$~ie@|Gge?~Y({~ckK{wZOl z{#(L;{t4k^{bRyO`bUHl^$!Ur=pPUsr@v1)UVo3ULVuUATt7@$roTg2s=rNGqQ6C0 ztiMTEq`yH}sJ~8Fpua}w*AEdMtG`NkjQ$E?zWy@dIQ=EUvHFXIWAqmYN9(^K%+n7N zj?$ke9H~D?I6{AxaJc>qVXpo(VUGS3VYdDxp-(?RI81+nFiU@&aH#$m;Sha4;b8qy z!a@2Ygqixogcl2nXo*6Q=3+5vJ<*5~k?)5GLz)6MFT1gh~2cgdY7) zLbrYgA=ht5bZh)pLKnYOK?{#V){WG1~NB^Bp?W2FHQ~T(@)v0~p8!)vG z%$=q7(Ld6uee@4?Y9IXro!Uo#U#Irb-_xmm^mlb?ADD4V?W4b=ug3P#-_}$g2_@cgo@CAK2;cxV2!h?Df z;q&@3!sqlx!e{j$;WK&z;nR9O;Zu4Y;gfnT;Q@Uq;S>52!pHS92p`i=C)}?uCVW&s zjqnluRKkb#QwSf@7ZEC%Z`F?{yhWc$xL2P+c(Xp8aF0GsvwvY3XWhsg|Aa62zk~VR zFT&jHSM5*RAGF_Qzs`O+%*Z~=-e#}2pA0MBC&N7KQTD<1B)d)dyYdH^2mOZfJgj}c zOSw_$h1t*ND4ohOUp-8Y|nzl!A-VxwpF$^cuJgT z8)+M6%dmc6ealv2%hxk?r}hu+588*?tJ;&=z1mG$uXet67R(7B40|co!>WQ4w8>hL zHcA_;CBa&Pzr(Yq+xlng?_7U^6$Kx=-f_L^dfxSf>p@sgaI@<=SFh_**Jjr_u$o|{ zE9g4iwE)%0IVK%{j+8#aRX`2!=URoleIJ z#}dap$8^VWuofWKk?zp#|F-|d{zY30y)bsSX*OJhT-V*$80^TW<&5>gj;{Q1xC95J z__8a1lqm?UD5M~{<{;UoATZe{$yz_|RRNi}Xsf=qtFyhfJ~%D~7t(+$xU3Do_KxEi zufDORc3I~*MT40g;J2h}EX?-`oggj2n)u-#3&3@M$V=&KN$GE zfq#st9`h kW}&^#XPZxKzLel+Sv2j|$t#jOh|W7+)aCrZIj4M_`%jYw08Nm|Q~$ z)0rS2qyHe_V<8>=a7YEcz2Aa&5rR@ zDz+$IYHv)Qk{RRfznJ(JCjL7U|G>l#$2i|);yotbW#W@e+-KrLV%+tPiN9guPnr1R zCjN+tKVah5n)p(9U3FP~OEY{1$bAsy2EX6L?=|r|O?;1ulTIVJK?lN&}jOWm~AmXajPYiAfZyy~CuS||{+xIk*;bw?S zmbcY)=Dr;7&iO%{@y#s_BQnI0kYkJ@Ia$J;`iX%b8Tf&L?-_X5z_$&2)4Q z4LoSzvj#q8;1dEJV&H7De@*UX86w?f8F04?quesbp9mY-Rk&6fo4&cR8OQ4M5q$+i z`wD2WI7Z1B80|OdkCM9j4579@;~T>*#_{@$&kgtQ3>4K-pCPKDKI2_O{*Hn0Z~)n? z&wz&k!kq@f%|5v!2Exrex#6ar5N^^5X_JL|=-&39Nm7>~DyA;u5ySnUf%^oyMTOS6 z;WiXB)WNpBgsv?DRk$rixxL9ixUEFDA{wX;&ApQwZrcgl1lmNut8J|hw&Z+FeTulN z*~Bd|?hM4ZJ!s+!V_bQ~#2+>Bbtc|w;#%AlWlEfDe4NW4=NcL3iqn$!v)L~%C(bn> z&ZU@LqrS)GwDq+xH>Y6<-3wS&oXHW#K>10=)DW(1gii~v)G z5nx&`fMY72eRXTPf}I1dj?v3v^x_!Z7^7=rbd{uOb0keUH%2$a=(-qSB$pD=&~5CkI|YK^~NZVQJZPJA2rbA z82Jyg<1(|O%j6h-lgW|$sL7F|njG2xG&}xgc6@7cWEPkmBTbHsRFfn9U9;mMv!m1O zXf-=(&5jDQquAsa_=DN;n%QA4Y3jdCJ}E;?j^vljj)P{$)n><)CWre&v%_3CKH22M zv(1j7CWl&XayY*$Lx5gn_Nd9mkmX7!w~Jcf*{QZ+O9jOkOk!@KFO|@{zRTlDNScX}Yl; zd1frkaMO)&uIc73#~BNg9nBu-&;F}PPR|@de@047o^HAcN~aq@5hlF@Cn{LnzcBcJ z^f+1rM{D3{4IHh3qcw1}29DOi(Hb~f14nD%Xbl{#f&Z~Ju<@L1FzdQ`y^q;ouCcNf zrt7AFRaBTs4z>%yKpfbHR-y3a{XQz`1-biu{kg~w+U>}DIv7rx~W?6Zv}&^V8ITI?x9`3 zzzi4AD!=Mun_NDy%$EZ8>MRFlfJs_~a$^PSls>RQc&_y+wu}2A*47DGDPUt*32Xx8 zwP4}ZVPTftV4JUs?P7}{Kt{LkB=2?GS>OrKhlU7m_>NUu4zo>O^_dOH$8XG-;L2uu z$1yOyYG<|0vy|Ek-J!}b^H%wO>lhU9fr@H%({O&*HigXqyQ6UU9M+N5>~&9_8UmAk z%Jvxnc78GxpE0n1xHVwmc{xhJ!U6?QNJ}=@Hg+A*m=B{a9T8FwrlrrwQQ7`6TkJlT zQdyVHl&x&*{E$*L&$`Vig;rb+J0Y`HJ&W=Nyo}JS(~gSmTxS#TIww$+3z5+|H?5rBCMdf`Yd2_4dB;g^Q*PQ^-FHo9Yb7qWYRDC z1|nz&4cAPL=wm2?U!6VB3ac{a*DhN~%a>q*1}wC}WNQ z)cA#Au2g0SNbSe=t2Kzl?hZtZ#KVDOI*_8b#3;!HV>g+^qm$#yJ(P+(Fqy3 zQeha@BKJ zeQ5+Opg}T&GyB%{HjxabLD{pyHjM4AdZ()%l4zeC5vI@j>1LN@^R4}KGwv!I>?+Hk zU+iX+B53*yO9%^W@n39>=T?#QoOapEglQtHs}#Pu4H~` zHort`BRe1>rrVX4?n)a-zisVPB53;zlFm(N*h`{G_us0iFk>W5cco$alOt#d4Xn>3 zo@p0n^Naeaf+Y3pEcNTb^ovz6H8M`*V^l&uE)w~eihG{QTEI@(O&0U4>Q^pJ{o1X5 z4LN}`R+vL`rN=K?gsy&JHoril#k~;Fuu+8Pt5@Bht?nO6zvw+Jf@aX5N)r3}1*WX@ zTPy0Luv%xoN8OKknHCW?(OlW_d9e)O=V$ZH8g2>E+0V)AQBTfQPaZ_SRtz*HBFv(> z`fTw4h1!COaP3>-VCGR5W~&Pa(JzKLE`o;9pj;yoI{0RzT#%NiVKnb%RTrrDsSCNf z5DPOQBFv(>!0r=`Akt_JKQEhaqQb0_3ptb25jpCJLG)`BL0CfTrwHd_^!|&G1g729 z;e+WHLrjgJO*AM%VlUYgD?o{_d5AN``=NfES&2KhMd*uE!hSmXnC`-Smvt}uiWY^dz$s9i(5Jk%l+TCKL# z>JVE`x(!FF`iT)?CC!y!RfuoM=Ib?h?T#~=qD%Pf*6o9>+Xv9E4gDrWgncv@7)q`6=w$yrAiuE!`rFLROSW4@sGS+4DwS6n2 z+`4h9b>n3EH7Y|`O6#XG&NkwkDr1awV~KU6pMI$_$|J%+nyZgtCAesxh0(#@r0g46 z){UdA8%NMD$g3h~9}OyCG*p17$>@sCwb=tJF&czIlew_nbgb|jr&~8BSvL-`Zp0At zBWNj2wb+iW=&NK+cDll*V4%)5V0&aG4P-%Mg}TwY;$FaV+Ub@S#d@}GT|L;k8e=Ss zpz$a&**I)Vr>=~7FO5# z$?&Rpy-UzS3hcf9AJjxW%;!VJr$>ZgHd|#vhP$O=oaWaG*BLbSYK#cMhF`Dg(}r75 zL;WX3gfTZ8*!b+z3%aC!n0xb|sf?2{tS6z)QzK~N4O;KG1f896I?)=c$aUA6_Wz(l zPRO>NfXWv|&?+1#FH2C~A(c16&hnj2*l(ABxzL8Tj<}o7KE2NJ!7$4QqAt)>9H>sL zi!=LC{i`}xWmsrQ{K5ztkL$N5w@aN3ZS~zNp#}frN*-)!$+yrcT@yjOa-bMCndsAS zZBjAb=;QVF2z`N_uUJ;-Xtj3$mcJ$-*k5pClX8p&WVtkjQfNwBQ1#7z@2s3D3u@-&gUOEkYU7%bGfv3FeSAKdf6FIZJ;9Egb>ZSLw_7cn zf_!D4=)uNX*t;eg8#Nk{I-@c$ACi9}SRiR!6ZMMv2m>8`rKn>HPVEo&r-FR?D2S6) zk`=f7<6)j}G}zqWa|a9h)Qi|G#hilOmHnMIT3Y0 zg=oY=)WY^Yrgns2a3f+8)O2?&BORD5)_uRpqDQ~^jfS4r4ewq$z$Q^XJ+)K2h>D4Y zsOzkU=Qg~DHF={}urUGbUvldC8-8 zij$5ufnAG4#~dS}-CRt#1%iH+S}t z#I;_2Wg|SZO2~ zowyj&aGkg&R^y%Bbt{{r4MG+!jar!5fJ0E+=qd*fQ_?sLN1gdISJp10VXm@%MQhvY zmS6*%o>5;&-z@G&zu8+<>9ip1MQPR`1i};RWlncjdpC}`IKajieL*`7bktAeAW4A#+CfXm<0Vqrj`tm@hVeo@rPKEnpa3jn-|vL_Fx0p6rkG!d??PZ zjonnhg(JV7uIRxA$O(D3uV~Jvm-Q(>tlw+7_uK&R1>$ncv#hmERe?-a=Y&!O(%{ad&I&s@mojyrA?A0x6=I zzhBqWAclizdE(N5cYScNukBdVe@-!fwREos?`QItiwjeng1YX`HGOjh;mkD}7oPTJ zY=;X$Lv(~jt-oG?cJYoczqvENL0QFywYBB1tZiM>Z#Jc8G}%sQ!Q`-tEjWxf zNADZqVI0)Lb*Z=L{5SCDRO2 z5zS9UG(Q#5{8U8qQxVNiMKnJZ(fm|I^HUMcPen98718`uV1B6Ai@po(-PR3vCC#mk zZTYQ1Fw-tii}(QbXaV{Nel5*-9fjc=ulxP$$5RkqhOVWTiusMu!|}Aj=YKmpjq!S} zINoBn0R8VeP6(&qIFQOaskytsWFx-Pgd5$?rXU#5#B4?-v2HRh#}qIoUUyMmI2qJM zPUIa%?D5EJO$?R6qw6XU@lLAxjY5t@)VfMQ(!Jnfw?>d z=JFJn%Tr)3Pl35S1?KV;n9EaWE>EGkJcZ`+6q?IZXf98oxjcpD@)VlOQ)n(vp}9PT z=JFJp%Ts7BPocRyh34`Un#)sUE>DrUJalXA?-9*dWG+vUxjaSY@)ViNQ)Dhrk-0oY z=JFJo%Tr`7Pm#GiMdtDpnafjTE>E$!JjLen6r0&EBoWiV*R$rA)kwJnWtAyAONHco_9ny3n_*@}nLSYFy|J8D~6U}ds7 zgRmyAZ#b%wM2%~6)?F|*408`H+vo8!=~~g+)`|sydthi=Ann*uQ9Zo+>Hw^Rt)$Vv zwxI!v3)>vSb04_r0aCiKo4n+iDS7 zYFENmyHtfV0@KJ#Bd*Ah`HV3n@n?%EShO3&hl@&08IJZYvqvPT(dn9nz} zNN6)lqT0-|zS@kF!Z^Q-kcKc$qao{~(~wH7G=9>!N#iArlQg2yNJb+Vja)Qh(MVN{ z=SMM~7sYr!6yte-?H{c$;vy$RqZuHFOt+*MqLtvtN9P-zXLNqic?G##nO{rqoZ5|d z5++gXrbhH8BV;|y@1oZirl4@I4oQ?^Vx^c^DQ3PDGhd3CFU8DLXEygCArM)OmMRt~ zTAsL2@j`Qpi(sa~)ghP9~~2P86@NZ&Qn)=8@ARF>8w(FHK?k&usOhaIdmgF)Gl)@byBgsX1 zjSi0_!SR>~n1~0PMM0dr0*S3#98SU;^%CArqb0s+1Rn^D{mythDFiVGjFN3I2Mb3; z)5Cmi9lgm$VcSX=YvE=;XWiz^um|*Cax8Bn{cD3AZ4e^%R9+jMOw^eVALYRdA7~SV z_@1Y&F;O0UT1|-1-6|jT6Jx=fNBQDB(KiS)Bf9V*S!_UpkNgShJEE_*6MUj4cw(GR z@meV%20ZWLi4IUN0P7W8c(DS&Ypba=;A)VcdAeKiWhY*@Tifz!?jFUVM*@1?0T)=~ zRYn8Zj*sOE0@gObwF#c`VN!@l%Xlm>9ta9*g)))30+G1_k+}jR0%p$NL$~?(8fKZe zqPDf+&NSeKQy)bL>`f3*-2NIj^2RN^ar186wik+23q`7hBGp2XYN1HA5L0cd?+SK_ z325NL_pS4rSE4^QO-na^E$2dS#+fp2_|OTT&V+9lyd*ujxvOawgzAQ|8Y1AN zkUk>ldsED@{5{6)xp8A&BywCNa$F>GTqJT_BywCN>WMB+(L~$2yZT8tUJCbhcw+DXaK_Ds zVv6VgH5P>>U70i`Da-R0&z+u)o-R+&GuJcCbDZZ`&v4H`kLLcx{b%=Q?ss6fy{FvU z-J9KO-7DQo-E-a5?oxN2dyre<-}2w`H^46Yef$R4*?m3is<(vCl*9o%lzJrE)q@i_cWH))fLy3f=DINRA{8ShG2bTZH0HElSI}2 zp4#HNV6e8h*t^j|qA3uuAy`sW?yvW5w3DdH-&5L9(NJ1YSm@oTkf_q%Q(jh9&{$et z;N55=Q2-(~Hr5tZ6hkO0i6%p+hQiw7`tn-uMhl51fv&RBMt@-gWP*`sB1Ei*k)o)v z+#5cJL=zxi6~Urlg}=lbUQeRqAonFDwFSk&25)#BiN-_3;)W7`LwT7ud^U+H{5|zW zMP>f7hEi|%EE1JNeH8=?>KlR}T1%obe^0Qip$IArQd~o#Qh!fFd2K-u3l#1lQ3;G` zg~i1M#U(}F@M;njL#Wci#sYr{WMUPGia=LIU1@z;ZLK%lO`<|bv9u&uQdxzo~-f$<0{E++7f*=?WEA)mtNOUZev7)ZnUtS0i&m_??P!pwP6~#s6L2tO7 zMEMZ0p`yI3paSyMMxt?0t92Fr0&JmhD~ZNJ-B*;+euOLw#=&C69SCltEf)eOX;u2{c+giF{D^Wu>*XkOmLe!Gwx*c+)n~S5Q&F!?o!2{u`ZzWqNoiI0txt z1ZQcH9$rGOcfplkFeZEkC|ls&u*5XGcu8JfeIrb}gi)!r6R{SqGYz9hZx|9j9c~H2 zCEoQA`K+_xDgk3tuyx6Tc{%IGot4vy18HlU!I#XQ6LYR@%AZk7pTXBQEtxW#f&iOQ zIeQ)iGRrVrmypdr*%WSm9~p&1RTLeAuDf7ScroPfihS=H%wJA7e8K3fZ^nVQxw9?5 zyu73$A77P72fiwi4jiwg1Fw40f!99izz* zEKFRI^g6JULfGQB-8 zvd&&GYnCs3D!3z#Xn3_v_>?^1H)x$o(q03&DRjxnCl8L5VwjBDoI=H-w)> z?#IaO_v_&kz&#*oKe+P?lETM>YiQDgMrgl3DLj)Tw~FvE3py!0gCu)|q_|>AQg}K^ z&NU<$W*SL02}xl&NT!lxqandC)g(DfNZ|9C9-ab{0ZD5?l3$>QtH_1l?D7k=a3#1> zlW=}zkrob+W0`PFCP%$+Od`h_!ZDE?rwGRca?C|XQusJ<3{9F14!EQ77nUW3$CG4| zA;J7rkc5*2<|{$0a+G+!HY5cQri>&X8WMk@7A^%zs^NH8o4-S56ma$doy==gs$>?aS*KJ=z%_g`M8hP_BkY0!#MPmlkW`5kLoc z>d=s{79LKHTH(kg$5L<P^{@|ky65zw!m`pbH9QPl$)3ff z#jbD`1v(7^so|j{J{847NPJ3Z5!}ZP2A=I%l(X3HFND8>93CD7rAy~8Tk{IW6^`cN zOme;`oO$64aL(c4R;w9a!NaH#d((tNi1DszT~#<8-&9#R4jyOa#NJeyXKXZ!NkT_@ zH?=M=Jdo1E0q3loUrjG3JOF}D;j1WULkGOmh3vGpb*!w#&l64X-705YO*joRHI#RY zOu;L#j@o7n*izdHOO0yj!5i#6!sHS7veb_Z=YJYe=u^eIW#Lp*c>?e1Q%#G| zTj-eOr~>P7$2f*N27zrjhy7>!_h1?BBm0~77r-vu1NPhPH-J^ROYEEMYwhhxKO}vV z^l8%Jq*uTKz#~cflJ+F+NZJNA0M;jUB`r@{nzS%!R#H_`dD1aS!;=Ojd6OKTpFQ7u zzVv+LdDHWP=K$>ff4k=fPsDSHXOm~Gr`^-&SqyI_W_Tun4S+EoAH0{~9;^FD_qXt7 z;yw2v_jB(3U)eanv*9hpc(4aB(mlkT;#T=D{IC3L{t15@ z?07u|_UP{9yTO9gR(>ArchCX0=+5Bt`SD;4pp=i}Ibes*19m}vg0~l+gMEwFt>0Nc zhkgBDw;r@UZd+hG!B%N2v*p`zZJoAe+Y(!*Z8KN_NU~jKyT*2t?Jj$xeJGr zwa2ylv|F`Z+LhWx@HVAKYts zZvb0{m#CZ6wP4Ax5%z|d3w8`Asm1CTuwpn+<*F5I7=G*g%=sQzFnrFr-+2$%FWl+e z?z{l37p`))IP08??2DbVoz>3qV7qXnbEq@TsVTFSYGpiF=^LpGQBoAu_6yiC_}cbc z+dHll>5blJA#*CpE} zSW7b)v9}Gdz>DAJ4nq_i?vad3rbSt9nPerB6&b8{1^hl<${Ym!WM_OxTAEHBDZzn4trD)lNUyF#+9l8Fub;cQI3P|7w-wn4J9C6niGYK@dl zm28S+RgzUo7LaVRWU{VOCrX)YkJRI&Ox9#-g_M;eYY5hLTYJSRQ`cP+B@Xg~?+c>_ zMcGKI0sQ9Rrcw|is|Lt)>bcnVqZ*AEwWAhGMrKaP_XH`cmW)b9zLa-jB6p~-ScdaU zCeAzb^-0-K$ucCP-beaqAVD_rm#FVZ8iYvpqm=z!vX3NtOR^Uvdq%RyB%^*!`sjQo zChKJ+^<0wemNBT;lPn@-mrHhzWYmKw+!`rcC0VCrV$6e54u2&o8&0DO#?2fOm1Pc= zOx9JVSIX$@r5Iwogt+PJqQ2=e2kF#bF) zMml5zWW5ZabBttkW)X|_#M(3(tx%SBZ8WvC3nbeTWyvz9$#hO&3^$###LkO`bC*OJ ze^4?S&oP|-WK^cxB$K5C8%4%AsD3TkS5fAa?ctPt!?`c&>-d*sKTGzgWHJX1Syzr* zqrP@o4!i6Jc5x+xJlhMR;S^a{imV}Jru3aog8;-hoo*4vj3gNSpn!V`MuiD-iUed6 zBnwxvh>)Bqgq*UI-Q+(#Txa3kO4a=+4GV;D;b@;6yqr=qZTFE6H@lLWYk;9mwGF)d!;Y6D9NZr ziBXFZqn08juivBORcw^Jevi6M>Z2B=7`I5-Ude8jOkU?lt%}M<{8qA0qHOq=QI^vr z*)qu{N=A1=m~Kv~l+ma_G8z?-Wq%#@&CHQ3CCW0W-(t9opQMaNRg(Q#%D$EC50c58 zX2_e+j8CQS$C7<0*?W>5mh5fG-jvMfLXfMMrA+pX4B0m_o|e9{M`Xx;kg;F-(pXO= zdO*r#-^h?XB15)*hHUc;*_Iiy1v74xT6RfBBN?S}wUqTrwq3Gql3gm<#gfsuNm|aA zvU4R1OLmH6^Cg=n*<8s^lB`CuIg-tm>_o|?OGZ}=%F84vtB~v%$wo+)8D;76tWB5g zk$!^oof>5WWg88YEi>@=sPBNk`|8VSW*~f0N6aQg2lZ?j~}e-J>p&mPtIly@B?XLm5af6-jfEBov&PmP`$MaxU{v?MN ztO#xei|}scHLwjh(Ds9^%QhcuqI_cAZLPPCwtQi^-Lk?`&VGQz|M!ma$QsxH0ro3{ zy^@TBHtB(#x!%p?Z);$>VOdvGba$SKIWu#r;m?NR$&nr->e#+f4`Wne9Rc6Ib>rj; zvC~st&iI@X_@m8*{E^i{L-OD_4X|0;JE)-%rclwYQ^RsbJY{S{g?zb)nMOnUk?0%V0@%aE*a&Ed!yyKlcXEuHw!T#qPLwe!W z;WF5Fsv(#cw;K#D=xhm&^BEyUQ;zc)JqVo0M*A$oYKP4kcG|EdFyIW0v>YjiFXa|x zWv!2_h~_Y%{4f4W4wnVH{y$_eYiZW(tW&cvgJqHBqS?|D&g~a+`SZ}^uw*KFj!Yd| zGjtaG*-%;$X%;bI2R3tqLudI7#)LU=xSdcmZpqN9p%dWGit<3DNyLTi)68*U`?P}? zm*(w31Izh)qTgfcoD^v|l7eSY!Lp9FZu%x+Qcyi);gH$zXG6~kk$Ry3c9AsKA>`m` zDgaD7i|f9Y!XcGICc&Q-C*BoD>O}O!^Ytl=4#`r=a7tK44moy6KKy}TMx+*^!6`MO z#08fGJm@rM1Nf6hwZr6o(Qt_kXdS{rLo$a9M@>scN0yQ*+Wy6(4!wO?CfBka)08|o z8DB^gL{1m6MkmC23}WH^Lq1G`#T^QcY4T=zQBWCK3~}Jv*k=b#XodYb{9(}#;+w(E z-p^w1529Zic7;IXG@+x5Jk_a6d{~&6J z&i{?C0y}#+gFT!~zX}GaiYydrG86U>eE`+048pR^hQ3N38ps|>X83Ev023k$gc7*; znm06qyxfmU;xE2-_Fx)&FqwX>=v5h+-)|mZT)PjW!%FGdsDV9haH8szs(5u)b{~6<-Jinl$JUu1nJY3hxS(%&?#bbIYF%wB zg01y+)H@o@RjZTGM}BiNo{^sAu9^vFp^(sVa!q9wFZP2`Z8ZW_UE8piO~h8|NR zHAW>J+c!`9P!o>sQANn5p54RQ?qLjnttcNKnIrTh_W8R|&nhZatj~McjlSsrRTCn! zAu^6*3EL#!X{zO!t=9WxaEtdMAFWV(n3Ep8m*9y5vGjM4g5nKyqZ{euy1 z8bpNF9t}4O_%C+V+GDD&sXguR(b%|G7`Hy(laIAj8ku^eRBy`RyAx9#G?e~9s?|qI zb+;+i>L6?s8SQ16BL;Z}VX8%uDI#*>CG5tW#7kJp;1s-s6-BC!6zc|vCH7H`UBuwR zha!KZQp6gSaN)ZiVnJ?VQM?(rr(%9VBw&;+A<8a@5`V1(d-Eum7?})l;98luXYX~{ zd`I7HYQ3(*LtTf{>DSn%c9MvnxM%N9Bfe>yTCeM!p{{o_=-1e$cA|)$xJ~V~7#*Hs zpk(6u=ykn4$n|yx{enCYnP8MQVV~X|*#oOE8iazKGvl_Yb-kszU2l6_Z=*kUR0}(q z;s5`}; zg;2ogMSv(&BGwZgJ|zcI1G^M(Kus~wK;f-c3&vEzs)rToz&NbJAAGig1Tu)V3hEu! z5GowWI0a0h-vE_|vrQ1jhb4mifD9VNT1^2$@Jme{vNFvN9I_7i6~Sr(>;fl-!yUUF>- zORT}Y#M^YcL;I_ zXHrOo69z-0LVpNTn-TD32OwRa5htY@`EZCtZIl9v;Qx&f670M{4-7CH#D%CESQ`7p zl7}7}Fp4JHP;`Mjh=XqIB%mCR5DTSbGmGCv0%%$~ARP1+JWU`3{#Ij`!@~!E7|7~7 zKy7XDGb{7WAh~xN<|?32D$t9R6jG-^=O+P9TS2By1W9HiD;!@a5!Kbglh^U2+ES7M~LR7K(WCx0AjWj23;83@c{1-q=>^X z=tW8FNWr|J76>8_$RA`#Bn^E5Ql;yU@DBw70hFnJQH(&y3d(&U30F%fux~(A+ zqDKhQ5RTy@LxBK_DOcddW+3-l*~k!_X~?NXp=^{Q`mg}x;sAPxZ2PEe=msA=)I3Z% z6hO`_@c(*1$d1CQD2PfCsb`=D=&UeoTQM*m0ijov!vaBJ5u*Rl zmAz?fD~406K#IBZ!C&+UK*@!KqCp`lLt(=c9H@vv&44ZliDBVHBO#2YArOEM^H%!& z5Gaqd%lwBRRSW#b+n8u884&=)f#)qAN&xbu_^Kc@%SM4E8E)Aqv*?0D3~K=_RkA39 zWdn$P3>w562mqBG`~U{RoE<;~0Ux?l>M@vE5YaNx=!>VH=3Mpg&20laS@i<5_l5a5XNd@)sPTmaF^;k>O(gP6$`i_+zcbn)(w;; zkU_cN5hetv;c00;Mu5X-Btt<)kdgodvtkTZ372SyvXs?eL?46XYJfoU;z*-J&<92% z_<=*gdJMs>0fY@;Ecn~PHpNB?ABLi$A;Efu;%rgbCZFO9p$L4TqEL*Xs0Gjk`os|c z{XT;)#bofHMgR;!Qh4}ayvHA4)RyOk(2v2n0GAd@y&7B?3r92Xu_&LwpavH?NGcWrUqEG z_M%=7Bfd{*>S651!dvf!=w9#efbXiZQD1%hp*`dY95|>vaA5tPzb$_*C7^g0Z|qvN z=*Ob7wdFP#fK#j02}^F?djC^UXx|vC@9L^k+sdqC0#L2l8)siNa@rT!Ua&~WQl>(` zuRKt=+Y<1>e|2Mu_axVo{!4~4-%vawLk`>MO6W+?!uy~nsH$H-paue%c|0ZI1_){n zpMs#%L9vxEIN&4!?|=`yeW6ew1h|!fuM2AfS_O&)wG|>4wHVf@#S4mHtb$Tvv%-1g z^@VWM3V=qRH*_c&yzmIkpw8%{fbgsO(y*6VFcO0%q{A10k;A(SItxAjyMJNu|LAeF z29DOi(Hb~f14nD%Xbl{#ful8Wv<8mWz|k5wS_A)MYhdF!x$v2G^ZJ~C70akG3p`Z9 zFFq}LL)BJzVmb0iIBO5Cp`@ zAb_`qss&#zz!3`JbEpqe0M+pHTLZ4-Z1GgO6km|DKps3Q!|R_Jflyk=vJ_v?u$1BO z4hd2UF?$ZiXYl?8UUdc7_zVSv5S*!L@G@YA1zr@Xp|nNJmsTe-08igu`&DY-Jb3Pg z2W;OicwdnX8oaDJ4B26e)e(F`9^}QsmTnlq)S4=b*8)C)oTW+?YrqF*AG7+#L0)J0 zARdH-$9TrVf$Y2k@C>b37D1TIKmgx&!1pPu_?&2AQ)^gWwq+@NjtC#X_sApRC5lB+ z7o{mPaxlm6CXNLHzUv_^sA~9ml7-IKK{E@4eAV!a&+4HNymVkyyACu}UiB2dVSq+x zO7&Lx)S3&j@%2r)h2`a4=1cS8dmd&D%s{}bgdiSdoca6?tIxU#WFhdkGS=(^?xS~Q z0muftV6co)7PJ2&tM&g6tku_k(7w?=)edW~XwPVmX#2E1+74}-wnba7b!p4BrP@Mm zmR6;eYsYBAwLzL!bGUwXeee3x^^xmM*9)!#t_NJVyKZnrT$i{uxz>UK_(s=a*Id^O z*Cbc5YmCe18tCFKtNNq*t@@ezo_a`qPTjBGqwZCAs@v5I)R4MLZBgsgMPP@zS{<+Y z)sgBDHAPjOzc~Nu{Mz}6^KIu#&ZnFYIq!7tc3$n=>O9YRwzI?8V9EFZN zN0uYap*fiS2m3enPwj{8uh^flKVsi!-(%ll-)7%pUvKZSFSjqXFSO6HSJ}($$JmG4 z2id)Lhw`)Xz4E2UC| zT^ujc!>}_!tKOiWs@K3?juT){f;>G-Pt!G>dFCo}l^Mz;rC1rG_>_SPSFE-lZQt5H zv%P0KWP8rG-*%5}uWhGoJM8BevaPbU*y?PHY_o0Ew(&N<${Ym#i4ULsg_tX8ncH1`t8&JgSo&AnK%(*%1+bDtvE1Dg9}!S2)C3k17IbI%iOpXNSE zusbyO9LZ)2cAMs&C0K*zRwZ*v=8()T*iy}HlguiaMX=K~{%^^C5$sfr|18-*1)Hn! ze@OPDWPg|J2g&{>*}|>3lI%^%-jM8d!NzF( zkYuk)_KIXLOZJjvFAA2c@!v>xP_pMGdrq=vC3{A&p&EZmvL_`wAlVa=JuX;=#`jD1 zsAP{w_OM_n8mwrh^B33ylHD)aeUjZPn6B}=CEF+2U6S1?*&UMIE|^{8w@P-4WP2sM zS+YHXF^%t*>_*9MknDP5{3nfHC)rNPu9a+uWY-AxH;rE_Wl5)cE;=eXjA%f_G9P<_PWNqCF_!`Q?OSxex_vYf<3QsF;c_AAl@ux zO@ckC@kYslk~K(HFPRvrVL=67EM&k=lk8N%?$!7r$xfDRp=1jrn=ja%8lNlKNs`q_ zCdO=-(#=m4GGMa=+oSR0C7UVP49TVowp-&<1>2$V$&yWyY@%RSYy3FDA{ws{>`IN7 z3ASD1C4z0!c#&XRHC`atB^p0gu!}UFFW3bdA1l~qjgOWrPq0lIA1T=g!NMBP6>Po6 zvnBHpbKk7FMJbVqQo3)_+|z{bjhee!u$`K_O0r7H0+NY3aPQFEqU7#~<`yMKHeQ4S zChEX_rRElO;NGUe9t$)M0V|eF)P{Sj<`%W#zF2dM+CX-U2zR089w*oq%{@jkQ7`WE zH1{YW+o-ukZMcCA7qXD%&XG*ii+jE19wuaKHTO`-hDbJ8uvMBnQ?d-n(gizHa}SU# zO|n$UQUq(&++N9&1Z&Y?=_J+0a?Py^2KNyzVjNmfEfm+S}0{wCN|RsV}*-%Ivq$-a~9Pm+Br*&ikQMzTLh_O)bRN%o~=Ur6@3V5O@5 zfn@JXCa&ikeBYI_!;-xt*jN?zfx!CXz}}SX4ar`Y>@~>_N%pE_uSoW?WG@LeT-9HY z>^G7fB!=gaF@iw2=cVs+l07TfFco$Wp_~E}*Kfs7*)5Xo z70jyYH%YczGI3?s|E21?NQUe>$;9>if3f!-@KGCI-|uQAt)yLzwC-yg*R?63rVvaq zm<~xOsgP<67%&*yU=tvf^ag}9!tN#^o%E1|B%~8k|EZ)vNGFg&Dx{MJ_sp5IgT1oz zJomZxy`TGeKW~EPdopHUhp*7OF znScKuD48mJ@f5b#g)L|5i}X>tgS;*V>JCW$5S7lb}Oa6*A#h_u0Y0 z)?e0otJ#Wz65JYdx>;_#Ys8GnMi%^*y(};kv;kkx&(-^B-)Q%14O%z#OZ9H`WVO`) zng2Tf@&0V(Z4hxB1#|8;CV$QS&si1gE9Osl<~*^iC`)f=&Qpf+L#gsZ5xOd$#W*;2 zh=?L5nlkl^W%4L+(ko8F5Hn^olW4oC04DYG0|dNi9)a)CvTC+uJ8g2%(Bnbl2Q&{8XAh4__k{b|Z~@DFy@ z42>Nq(vsUHH8W{Z77|lGo5dt3(kQT$`}36hv(OFT)X!KS5eLjdhN}qwpEnerlEuP2 z4(}{vOS!K=xi1r4oQYf&>n)=2R*Q>KcxI1U%DoZg-Yj%AUM<67y+jl+nK>mDj?78Q zWM)gbr;~C|Cb~F_b#Sbwh{RjBj7O4Mw_)Y(BIWLUbg6E8hzLCMbC}H|fHLQGf(im* z<*q{Iu1@HJ=i#yL5R}jF^3-ie*6moaFiA6y#8a_%D(@?IIm%tIv!)_;0OcenwK#%N zri+Tjsj#k6U#QgQp{tAf>?VSGE5qVJy;FHzWlo_oCm&s^jIJUIZ)KSB>?xIDDzo#I z*%|0kWptq|cxu$(k)&3JtJD=Lb$RGgWpox1cq=2oBY<+^<%pHxDzgfdS^4OK=V7sO z2nv^JasWsS*gro$}HGfGbUC>8R?f=7h070TF=a-MQX9yO8-)&e<8Y5tR*4>Z?P&o z0>}f;1{SNWRFo(cMd*U(=vXlXg<>u76su1b>j;>e&Li-YX+Px{r6QJ>Wqwrk2bj6>g_|ws)D(NJm@LYE6zj+j?RiZ0OmZGGgOI4CDBJfm+{TGh_ zN{p8%R*A0oG8LGe#9il_!}R&9^Djw<(M+weW}t?k&zeJh-=oYrZ!#d~b%)rQ*z?6r{Fr`*$8i zYH_Cf-YD_CQGhNLXSRsITb#e~2wE3sy6^R3-|L0wg8#T!76gUj?3voa?O)p|P6**? z=f2l`-}zn-`(EdzIV_eblHyea_$6xZYSYePeaU+M&|vxEdA@iSy41=uL?qr;{xgrn z+sZ9ptiTt`M3-85x`@JCEk9uto>p%8Rz-ZPve2b!NfS|cTltSXiqvWe`>rkWU7L?C zRZCbz;H{S3Jc8EM685bu^sVfKF8CiFb0H{Hi|6KQ?~>IrOsqrJeiOgO_qcDR<6Frq zrEkokoaDBd!wm`xKSb?sM5SPDC~kdWeIEQ_+a45SA{-PV{YOtq_V+xTw{5#~3g_g* z9~R(%m`$hk=(T*ugQpgtJG*dp9{ge99TE$Pz)*Ot&kfo}-}1n%3(u`9sLO{x@EaWq zLNF*exDhJw%n3m;$)J_;O=`ix;hx4k%XdK?;}O;Lj#(lBZrl0tAn);Y)ZQ7Knw%}4 zIW7Erm`zA;0bGArej zS@u^^`^z8~1(3o3J@b0zz#rcp6bpzGcLPDAwo~oDY3>BmmgL>68?nrR!pOyZPfvwWqr);1OTd}e7Bg)gt3(I+} z_m3&!q+St*&!X_sHAP2hOxdwz6W~wf{=;HE5jLx@I5(Xgvb>Fl#m9iumIYV2K4l}z zhQS}|XdJTYY!QjKb$`kufkg6j;tjB@tY=ww_ydoTtIiTR@6tOp=buo{VXZu&p~M9Z z$iis+Ws}OX%Sw4P)#ag)(a}+L@TxP!ad0)K|B@Gg zkN9yj_+kMmau)|ihea#l&(C*Ot~$Nl2tb_WLmmOFk=wEWFJQug94nooy`tUVkNXT< zbsA;Zqd4_Js|=&|3H7Gv*r*fDi}Gv+{Tr2W{zv@(E50!Q@1*-5`fq>t{$DjhK|BBd z-(wW~k0i&CB*zu}zyJN;eZ&8k|0ft|146mbdS{gV1*=QE;Tr^Y14Erov{0QBta^r; zoM6plsK1F8s$`;tN}On+UM5?MtL&68Re)ai+&|^+>CNm07bt{>6am`bZMnYD=aNnT8^}sv{2m|V-88b zptLM$nbI<(6_A!LElpagwEWUiq?N4A>T=Yeh7?r0($CpP$5lIfrG=`{{5a=t>4)m& z=!ZJHX#FAg?vWO1@8aIyq~EX7`bAnlOY0|Tp;|A7-7WogNedNxaqsui?>lLID=pLu z#^b)0eyH?|eqTwyFQxT`v_6;C4r!qxFos37W3;x(y{Hn5exFD`)C)$xkEGv+(n1Yk z-21-tLp5Radyo8PlqJh~Mp?3)XOtz&c}7{XoM)6J%XtPXOonB7(#j^QwhXnO;T*N4 z$+E94P3E$;^sVG^rJJO6zqIa?*1gi&A0O&QW6Y>EjMi=PxLc)li?nW*)=kp7QCh2| zb)B>l(uzwfCaqP{Ld9ZC!Aj|OjkKYEFQd(C?YlXBfm)3G=EtA$#XV+i8uRY@IcBvTfAZuTTnV?B}HQl(g1M>p^MVEv;mW zsIikZU1KNfvc^uD6Iw3YL?bKX*Eh~uC(Szt4>-olU8Z6bgSKD zo2+(|ZL-=;w!~^T+5W2Ci<4p9i==g-v@Vd=`O-R1TIWjZ9BD0)mMjhTEa@l9#XUp% z$r5r;lYX+S+(pt)mYRF2^poZ1wn#r&lJ0!zC(G1rl76yu-3I9=%h|1$ezL^f+0svz zy*o?#$y#t{NWWTXO_$a*X-$<@jkKmnt6Ey8Nb6*2og}RjrFDX|WM6P6OF!8w+~cI5 z>>uti(ogmj_bBNn`;0qL`pMqoj+cJ2AGt?JKiQ+)!=#_=TkaU?CwrMYO8UwE=8lkl zvgf(Oq@V1AZk6;KBCX^#w%VLRVq(kho$nY5zPDwS4=w2GxwBrSQ3bql0l zCu!wND^FUv(uzncM_Sp^%92*5v@)cXF0C|ag{9?6%aIn7R`QNm?S`aZP+FF>OlcX? z3P?+rmL@G#T7GFM@QIec7inP0zBQw4AMKq{wpUvJNb7I@u3{j}ECBugGu>X!&(4F+ zT;~AxDSZ8(#)|DP?7Lt+yl7~9Xf>=ommAy?yfAopFlfDGT?p&KrJK*17n&nseYa&o-W*~%c_uY5wo z|K0zF#YoTH^YWZcjIzVpecfVdcAjQup&Q_@Tt>vWx;wm3^GN%$2|N-mw7#HbW{SG8 zrG+|ap)7QDen?fUK}6$ufzHPBXuR)!EiD+)f?4R&SJk;93h!6daXbqA=9ThQ)zYj^ znw5zzeO2XZ?vNeNTX=Q^k0kXaa#%BqG&3JvdJ8{CMBsS~&kpAiK$C)h;#FH%GYU1M z6T0Aec#I3RxAzvF9VTBUAB_T(Gfw4^q<#X_0@?+d;b;cztmzUX@pgFW203c=(v6Lc zvSIwCo2hOMs#}d=F_LQcwu3SJ$o5{lnd*DF>U){!Qaj*c?d`UM(L9p&+kvTW$yc{z zqD$?7G~2!HU=)wW+YU^1bB?+>6J2Tt`*quSir{~Gi^xXuDB5cWruuHa`fdig)DB3y z-P;aE@JLeIfvdh#sJ@ejF0}*FZuho>;XDGUB3^~~uGCfEE>PdjM;AN~i*em{@lnCg z2eMEGd|7N*YCGU@q&5TfEp>!?qLiMCP zba4pFh}e{l>b8o<(SF@J>WL-liFxQ!-ExI@NQ$>^hwx~;b?c}n6sRZUp-XkkRo@{B zZyz5lbCc4?4fXgu_4ssjscyLlJTH>e51_1)N0M5%jykzOot%p<)h#K)d+T-(j{wS@ z*9+FIqfY9iPRc_UJjcek5Ioc^i0h}+?ZA|}j_r}nV$FRs7!(W;Hzta5N4e-5#V|7RFoo$suQkubdHGcfDRBk+C(*8P9v`u_-{OP_&B z9Nyc)55XurpMiD%o=pFqG<4}RFxQ4}w{afKqeyL>w*U8h|L-~IQsX2&cyFsXh(`eR z#p@FrXNLc`68~>S=z{0?7#Dzt#_1XCzz&qH;wTW}uV2to2g=_(p41lV|5b%3)BL}| z&YFHP(t*$N472JJWd~rpz)@D3|D|;QOD?(r-X8kJNcr6xvNsROYn(#9nC^ek^>bGj z?O=RI1=x#+Ol=36|Ah?y3og2vXa^k$zq6h^0`Fx?^FN>Ae?E*ZRU!$$d)s0U9z|*; zhWyXv`Jc;1mnxBqze6kVR$_M^0TeDTe5}ND|Hfkf#zJ(#b6kuozC$H?hFGuz+Nney zji(Nu^?%{t81`?3oi$Z4Qi0F$^zCj@77Z?dw~X`KbZ*1HJjcI01Kj}MT@@oOcyAP4 zc@*`H3q4UR%keME@N-w^yQ^ZP3-9fmU3e7U&T06U=KGhXqf4EWE5t*YdOK%ljKb47 z4gY1?{>w7ZrFtcucyGOy^C(j5)$w0i;J-8%U8+~E7vFBZmhlLnzlGfQp<}dHrx*Jl@Lyv4FM*wK=inOh{37G&m!(lwAnFvmSHOQt zmj9GAbah^r6)`R(-)_(n9u(`6f}Wh^KRM0MT}{+sRYw(2%!7J6R=|H!mj9%5bg2SJ zU*1~*MLdes3Sj;dJNZwHpi31%0`uOERmdZN(&43t6~O!_|bg0(cCbK6Si*k^h8{{{+|xeTs|Cx7!puMOmbsl2H9U)BQbNbm>WGpoqfzB$Usi zXzwXE&EKQU-=h<{^dvMuMB**ZJRV7Eai;mZ7yG++LYIoOzlgwFoVh##$Sf}mEY39l z0Y&};3eW}5BVrX06pGXP2ojOSIblJ|gc-wN#ReXWr%1c`NBa+O{RhC#n#x!|krL0! z11yIR8|UlOz%paW@hrNsJ6qWuMpx(is$z$V@ZPIKb~3!U$|YC1$xwEcD!Yo%)p!(q z{(r5u)#vVUce^{?ZSGcgll!u}!CmjJb?6~M?jpCzo#jq(C%Y5fF>aMx z;r4O6y2Wn94ZEi6bM`p9ot@4$XREWxdD+?EtasKrcQ`jXtDF_i#m*9Ek<;YNa;7+w zor%sEr^=~t`Z!&kVkhE+9ndkvj___llkmD_HLM~u+83TZwmE+S?I-~NGKdKL%!gi;O^kg z;5N_<*c5yjRxex+ssVQdZw#&qt^nPDCBa3(rr<144wxLA7#tI<0_}i4!LGsLU?O1H-d)13hQEPiM0q+1ZG)NtjX3y&=IJzDy%+M zS5Oj&SYgYwe4r(;8)ivtgOw6DnJ=3g%=PA4&=a`PTxG5>F9t<{MP`#Z%bWt50u#+K zW|dh1ssdfjVl!ff;RmqK*kkNAc7n3NR%4U#vatcQ1=bpO7&jWLKwaQsV~MfIXaaqK zDKPtDqA>;(1}cm`MpvU4GzP+kY4`$rKxJTOU|V2oU=!#JYzV9mtPR`&N&~B4oyLm; zOF(O&DKINAB`_J(2F3)c0u_NiFdC#d5DA0>CMXW<(Rb@R^=+Uzut|Se-=MDt)qy+o z8}(JNzT?IE5`B^0q|XB7fyuDi;~2dPv%?$h>YyFq_oo3_<{+1_BU zhxsIT*f-j%>=pLK_7Z!M-DJnJ7R}z)Aoh-gm#B^hPH*a zhBm<%j18gnp|znqKz(3UXhrDa&=SxeXbQ~=O$ki~1%fd!Kczz3q`eF}2kW)9pq76l zC>^ZOF4mT4i$LpOmNrG3tWAV>QdL@o)<^3Kx&#poUWaHtP$t-|?o_v_TS1%PWp#tP zUR?|71UIUy)D`N*pii(!ZBl2cQ$V3$qB=&c+W+24S>-f12N|m04?K|AhuE9gi`bLc zgV>#T0I?gfE3pf)GqIdlMvM|mi6z8hViB>BSU~JV%qQj%bBPgR4l$dUMa(2-5Yvfi z#4yoC&U9>Ih!`YVL=#!-1dvCvUx+^we?pF9yNSDqKOo1l?}*pED zb|Y~$@-KEh@jB!$EKZCOR}rrzt|VTA{E=Nnyb}2>TS2^>xSY6*xD>gQT}r$Jxt(1^ zypVVS@qFTW$WPcg#3jVDk?*rJiDwW`C!U7f%oY(B5>G{LVlBjG;(X#fo*j>TgiS)OW5*&NWJe>{ zvLliAvI)fT$h+AQ$TjRR;#lGs^0p97?Pr4nbbWDv_($K;i&mf8lFmeUM>jYcIdgJyo)(d$V>w&zO9YE}cypZ8_fSt#%{{zd=e+k2W4|hlG z_v|cIg#M>7?C0z>hW#9f{hXc3uzv%we*<&y_<0QbHJitmKptpsCB8@8LflMzm-r6xZR7#=CgPjKH;AtjUn9PXjN1Pp zzD#_H_#*KI;`7J?dn55#;s)X~#HW!F`$^&x#K(z`A=B+giH{H;Caxnsgbdja5Z4m# zC*DWAmv|3Sx9=j}NxXx&hIl*DXWvS^g?KaZCQkcLdo}R};`PMqhzaDcc8s`+(;3OI zeE_k20I_{ILm9RUAhrwOc07JC!*<~eX4o#A0Swy%5ZeRrLp<(K_C68Yg>xvwcHtbv zusr~=Jpi#iI6c@~czh3r?E$v2Jpi#i0I@wdof){AK4aE8eVtqRbyNw@b|7u@LT#4LeUroGj@)7|CN3f_ zM80h=Ahr;jk#E}bh)u|s?AgRR;wv@VPI#i`~J_Kk&PK0bEzUWjC-BSO)x>zQ!JJ2Sbm;-2X#@zXl%+ zE({I?MZKr2Gp&KE@xvU&ceAan~>KL*PF6Em^F8q2H`e)gA2}`0X`O-KRdU zp08HI_y0%zP5wU0ZsktpWF_0T1vC&n{|%2Pr%acpervi+ykUX)IivX^)W@`0#M%!( zqR%$xIp#cgu`;tVPE)15FIFy%vWrtEuh{1CrRMRS(8YzoN5qr!r4NQTUid$LjZwwfvIHz%1h&B;M? zGSAY8co%xt<4Mv*Q4o3QAW6)uEHNt!(dCC!#`y$l{z5Qy$w+pgOw#bytE>CXLFVCR zWyq`)CCg_~!&^Xa$zBizU73_=LAqI=TMmSv;M z4;dcklcpgXJxfwc_PkcvsIRY`#=rVN%EkLUzgcP?Y(~Q-pZo&Ngyv0qGjnc~ElJIc zYntVzS%fZShNew>Gjk3P-$7U5}6sA$tb2E`ptluZ5r^n z&9hMvr-{?v7n)~BLCpt_kp+-peAmhNE)QMs93SVCrJ)?XU(e1Gryf-|zqw^-QgDLD zgSl#@K4E-o{AqlbW^nb18I|$m)M?Lm>NBJ4v|!8PCY%WlOVC4&D5lYrZ8T+|tMYwS zahf;neWiH@5AS{7o^3Ri8;zyt;tIwU@s4Irv(tGLkW8Kpe7~D*G?W<)rRaj^k#U+i z-PiNF{Iq0oG)x~~yXe0tk-5fpqaoAa?G8$WCQoO1N@Q`Aotj!AnlT~WnBbyICDPIC zX|{-m_m)VyF}}nYUx+T12+f}MHjsrpiq<8PZj387#ucIq{^R0&-ZbxMo)S5Ae~J8i z`#8dwYK#jT<9KNdjPuFV{8NlaS!6+!&4bl$7c}7N&b)Q#Mp>>=mW8gy_f*Dd>a@4R zw(!uYS05vqZ$z`u#fgcd;xua-CMLGN`hc!UGY^kVJGF^(kpZJL&nV477bhoH#A)ud zw?yajh+3DZZj?lfl5BLre{h`7nT8VWp1Q0(n4}1bORE0MWjXa(?0jBY$j0kCHod?-2XyReu9m5U0n;v+V=c6LdIy(Q{D64OC{!m~|W?)S^x)8R1 zoKKsE^A~x}U*G!t$7#Elm7@rmx57AB=6sHN*-i%L+vMH$<*Y7OQ@619MGd?EHCs#wp^V>ed zKnI-4gG2t>y^uf!=y!C|@5n}%7eh@&oMu^j%b|ux)utTuH4%MHHoD+HF3u-eLpgY_ z%v0Ja2VR_*s#bSy{kFgW{r0eaJ1>->F`94f9duV6Whb{c=uX#<%+rs|M%T|j-j0az z$=6UaDVHYbTc_|iIxLonx%$LxoxA*ysu-Vp-EI}1oXlE7OHExvvlv+_E|U6qeWgAj zO`pJXQxT(S+1}9tCq>x_A~&L4>xH>`VHUcS37U}Y&BTd3Xos07$khw7b?)**hQ?@K z_JN*udP3Vwj1>w{l#6_QsNN}E@5FO)SZuK<&)oh{s`!6$Sm^Olc9h5kjZ!1g0`XIV zUoEsXh1!~2bPZ8Ci$rAJQO}ckWbKcL)V14-wcB&i4Tw?C3q>^EQ7w~rG~Q7yx^`QM zc3T8p(gr(KMB#nNI}W4pjB3%fTRUmD=AuhO2^NSbyh90&l_irhs8ZK%Db{X@pi4su zT0|t?p#;b9NK%Iq=-SPlw3{R7(olkC5rMb+9?c_wI)s083Dj=N*KW#17d#J(&4-}S z#=UY>M~UVEx^JR+w>vgQTdgzgM)(JD!I-sqA{}Wd0zGN$NIrnOrs>q0>iW87xCdAo z%hFgTx<*YC|Neia+Nfwb2S5gum7&@65pb=nOe0rNt>XJ)`n>PwBG;z{rbQA z75snlgy{EmYy`(*(Jqo&lYqZtcwc6$S+4@4gQJ<+->yz{e`e=QK-p}X) zPfR(6YZ!rjf!_nW0$&9_4ZIh4Gw@R2nZTog`vYs>E_`j^^1wxbvjYnQje(hg>cFJH zguv*)kU+mc??9J8Q6MMa1`K_l{=2?Q|4RQs@q1+o%0*_A`5%UErr>jtM^wjeW-N#xCP4<5S~3<4xlwm|gLxalf&~ zSZ!QuTy9)soNX*L8jYDowK2(e+BhvYObY35w$4BS)eNM-1Cw?YacE4ch4aDn-iv*QVh#wO_B2u~)O1DDkRw&&H zrCXtNE0k`9(yhEh@w_d_{vhrl{wiqgBK}C+Ef}Ku3{ib5ly8Odt$ZntQz-umoSIJ+cbg7gsmC~hB zx>QP+O6gK5T`I+=QhlgY4{Dx>-~TxA0pi`nHN@M9tBF+K{se8uh*ZAH-(p+&i})vz z>Pw;eQhq1@--uLy3blLXXY&7vNcE{ueJWJX3YEL^Jsn5wTcLiYP&-$spOwxR$CWk+ zhW|r+nfMa%MdAy@=ZVh|Hxi#EZXm8BQvHTYX}d(w-ACL@{D(;8=2CgNR345l_QNbI zyiPeP(N9!}K0!wDGm4*4{EXsfR4?pL3gDxL;-iM*`$$Bj+(4uXSFWRNs(2+%+tdJ* zRkTePO654Q?V}3!QHA@c!hKZHKB{0}vO*uFcpf1>Or(NU9-{3BiPUfvxxpxSvx#-YS;T3?V~Ix+ z#}mg2=4KKzh-pNVXb46qy%9=pgwh+K^hPMX5lU}_(i@@lMku`zN^gYH8=>?@X3}|P z5NnCkiIktnRN5X#JX|nmCGi^K)q>ecUPaseiT#L&68jPlAs$TZM(jfDOe`ms5u-#Z z$4tt1=0M?}N%3d=D7G`Gy<~hz+teO2s6A#-d(3#4_TNQ3op>7Y1mf|;$;3&5=@c&g zPTIbMxQ2K;k@|T$_4D*w$e;RoI`#8(>gVay&(rDpmrmEebh`efCn!8!|I%Z$P1nEl zYiXP6EuHEuo$4!{>MQ*UI*u;jX&;L1H0oz*@6q-<#7l|i6VD>{CUz&55(|l0L~8$O z)c(^n@=uwtpl3O8kZRGm)TE z_yduyPhq+~g}){LZ-`$LsojOYqHSt_;V)?WbK(x-cH(EmZNyKBpAbJLeng~t3V%S` zRA1q(v`zIE-a^}(iSH7rKErR*_FF`{pM>9}?Kg<86JH~~N_>UCPO9|9eC}iJY3{)= z|NlN`rc=T`U~w2}pKiZr$L*u-jL=&!+WOc~M)0-ZQWz!AU>y81YnWxgX!gZsf8$5v zZezMp9{473FZ`B1ME_jBQ=h93hq2!;YUgUhG(~+5enSmYng1ZBK= z3;u)Rd}23$N8@>g_o8@5b98MBeV7$*@0>KJ8w_u9(jjzn|2R$RPI)^7FUVhrvJGv{ z915}A5X(VVhrpF_n#-M=@!{};!-=H{6ugQu~LJoq&HvQXD3zAJ=6!JJSq z8(sgjsr}+KeLJJ=H$E$aJ<9{bi|^!olu*dZ4Ouzpf_GJ%Puhk8FY1>1U1@_T@S|#L zrjO-sc&oYgrTC^2G96#YvO*Sk&+i|n3ESR6e}+T%Pe$3}ZBlIozsLxFk%lf$^}slvp3Psnm$a!Xc6LLlEt`K0Y1>la^p8c^ z`r!Q9c_7=qzo~|U=M)6b$w8Oz8ye^Hupt56JVQCwiv*0XT?i9+n_%*;7&^cOvHdV{ z=cC{`PVgK^Lqos#B$0-+lp;uDk4D)e!A5)y+sKPRaf5?%gM%aJHa1no`3!70dl%2y zA8B>=wps88D`C#iU=|$APu?X?bFdjmz_${uuo!zd%GL#WTQ`HSCT3>;IG<__C(HGm zY@IwAFKYZ|<_~7TOe9$KGn1dCB2IIxQ`$9js)wTN!8R=<-P)UP?af6O!j6mc+0}4b z@0X$nlc)VJMl@Le1Z`_?*xDwK$NX*la!G4W2W_EI=T>cV4P2`hNKjE zzL~BSNjajnVP?y$`q8p}guwL!;xxfJC%;WghYxS}N7=o>xpfUN@xK8} z&$Zskv);)@*UxuU#A%MTH`Vv?z;FWiCyL&+-i}yrXQK-)i5aS zxZ3&6e5eteUh!LRSzlXkGmFbvz|bw4S?&FxbWfDs-TtktSP5H?msyXOpvylf4UhBr z)sTvAo}qDf?@t9EHIOni&Uy^)*N;2a<2*4V<9w<$R9->%)H1v)3d=UN_Z0~Gn_&cE@uUpJaI9FF6)QxS#!k`vYHy+3!NYg(mCdnMm0GKc(B+4W zh>sS9QroX@Z3y~~q=+ghc7i#QK&oGxzy3sBI(Z=GRXW}O+f&J?NWaHjRGQFcq4 zR4}VH+p5h(7s3vU(@bmcUFeoJsgMZ}_fBg%tm0G~vbgums(5mWwP)J=%~5tkstf`D z$Y>48vxa1&i$Vnb<22Pe%hN?~;!$v&1nQx>H8|HAoQNEHoE+fA#pz4npdc&x8ER(5^hMOC_x>5fOVoZ zFl-GJ^~h&kw|jxSJ_?Hi!ZGkqw5BwxIL|7MpbMUZ<9wDioZLG)=(<)X$NSOP>2&TQ ztCv;mT6}cS%pq}_V_o8@fJ77)Aw=l|oM=te5U_l(dUy`HD&JcfrwP{HYKZd~QmP?f z?(1ak%SM-~f#z3xt0Bh2cTf$?+*@MqEku_eG9XTKt)rf5Shc?-xORXj1@j*(+uR#6 z`7H|iGtI2__UCJ(u<*{pK^~`{sr;a|17q5%B{%O3W2eSl+UO#MtI-#pZ1V=<-8`#rufFlz6VS zD`aBEdqxlV&0Ecf%-e$IZ9FZN@!ldW-u8WY6qeOYDOlHBR&FjULYE4*S4VkS&ck<* z7uQ@GHJ28n%MTe8?VeW8uklWYo<#qubfLu4-4Y?Z3Ao$JM1xf&)IUhLhIIlS`I8Qr|f)>D? z&dpB3x!PIgTm2cWP&+0X1d_67R{ zRwCTQ{=+u1C)hf6FT0(s22Fq~*rhNF@(i{B<|NJpRep9ZS#QtOt+%aLt>K^<$D#G!W8P-oU|tKF0hgHP z!mNuHbFMkVtOnJ9BhACi;V?+Quh|R65EPraCM=9;YQ{gtZ!n5rr}3Hbf$@&11 zG>juyYustvY$S}Ujb+A#Fp^*qyj!1bOfyb0jy1-^Sb{3}_;`@f-6%5(jBFS|VHyhP zI{qB^F7QR*6Bt9WDe#}b#=sMSb?~m|b{IvmDsV;M(!hCvGXe_&4KR*kO5pgwQGvq) zBLbCyLt!LE*FZ@iFOU(i1G>H!#!~DCb;#}dhx)tv>-vi@nqs~FfPR;Li+-JcjlLX4 zMl8`6>+|(F`gHwd{WuuUF$RW14bTtPd+6nQp}pPy(0|Jvu*>a2I|uXxEZZOYEA&g~`_Px6PeD=O zt=U`pSheP*;)_|r!EOce)ve5aVGef6_8bMW{CUipRXlEXb)ClXA?$`d(e$l?y zzJzfoTeY{eSG4D}C$)#Q`?NKnGZ53R)GpJ`*Ur>V)fz!*phi1EJ6bzJ8>tP3ku!a? zZd$39ufez*EdV2I_NYIq-+?>kS&nK5oPZSY!!GU1 z5Lhd4zrcM0_X^x2aJRr+0(T1BA+Sc^c7fXjZWXvi;AVlF1a1^qEpUUt^#a!kBn09D zF@aSA*9xo@xJKY=fvW_r6u3fQg}~(k%LSGREETv+;8KB01TGf1NZ>+&3k1#=I8WeQ zfpY|w2%If&mcW?;X9%1waGJnkfkgrf1x^)MAkZSvEHGbSoI7y9%oLa*P%AK9V4A>Gff|7+0@VVi2%Ic%lE8@qCkPxbFj-)dz;Ob{3LGPFw7^jU zM+!_7m>@7-V4T1a0*4D6CNNfDjKFAtQ34|cMhFZS7$z`Oph{qfz+iz&fk6TT1qKN8 z7pM^ECvd1hUx7me4i-2_;6Q;s0=)%#3G@``A<$jm0D*1-T?M)bbQUNVC=-YZlnRsx z6blpy6bcjwbP~uH$P>sFhzR5eWD8^oWC~;mqzj}8gaupyM}P^~0wIB*fF)oG7yBYi>%lpE4IjrEwW;Ztk@ze zw#bStvSN#@*di;o$cinpVvDTUl$G~I9<~a+C$L3ev%tFo?+Cmt@Rq|@z{>(J3A`xqg23|v&k1Z4cvfJ8z%v|Wj_B|9)57y9fhPr?5O`eRF@g00 zj|w~@@UXx-frkVh6nH>jt-$>P_X*r9aF4*<0(S}ADR76t8iCsdZWFjw;1+?K1#S|! zQDC*e4FcB-TqlqahzrC7Rta1yuu|X}fvW|s61Y;}3V{^@mkTTxSSGMk;4*O%TUo!N_cd^zbbm5~lpls$+3rKHDH zLV8TaYy-aaj4!8ee3FM!o@AwCc;r1T3 z3i&&`7Wo@niTssagZzbEjr^H(9)Dt2;`Wd13gm9md)&n?$L${&>PWHg*)rVzjx9xg z%TPy(eM7pBU$aZleU_ipJFE?pCld0C)kO&{Wv=T`55U*u4j{R z`%%)Be1si`+Yghz~P$^i*zXOWMgsr4mJk4hK)wv&PE|`VAJL7$ZT|_#U z7qZS6{{^IXc|Pe~p2wo-e=g}>o`P0j`U1tk)G*H(ledG0vLZS>6uPvSU+qU>6%VuSU;?WVg0~& zNvt1MP5P#%*jPX8WE<;;okTjPC)!v)>;xO@haFFPr;}~0A2!Lx`eDb}SU>Do8|#N1 zWB-EbIhyoNkFv3T*pZ}rI?>*Z`zMg@>3AFKhmEtbe%KNAcewv>8|w%3QL%p5SkgZo zL;9zq?XU2-QTCU}kv7&38)1Kr+r#Z0$YJ(&eZS^Yk7!Y0g$RG1h@^@0+Q)0>~N|tZ4Z+YwC z|05ElF6WV`aP+971e;stE7+o>1_V51oS6dn~`7#?khM?>J|VTodq1JCk! zjxWmgLP7HJi2U5bf+Q&E;qtO@c@esP?p=}SP*-jrj|77A7;w04dbq4KTvm)Ocn(RB zuAFxa-QHHImxCg4&}=vw?i(%(hsz*>=Bfk<$$8h``6tT$!W^_6%gDlkf^Z-gT}nS` z$$3hj{mr9joqiV9JB9T;bisc>f@{b@>3avC{naM@H25s6g>%AsD6I3O4@z(qIT-%u zl^6Om%6`Eyka7f`qPyD*-0fND;xbZ$5+oSs4gLoY&KHbo9sIKb_p>aQySSFr@C50_ zl|)kq`0nAsaV;qk9x4yw;&rdP+X~%nS?J<8&dLNy#(BCB`<=&<(uH*Q(|q^SEOe<0 zaosp51Ml>m-+1_rx{&UElIMPsgD!O;5{&a!;;%fS)|IHcA4lAev(W|rAqlP)2bJh; zgulp2OdZJSe(3(?eiU{;;x$>BAicPfwi7~N4BpRC_G5BxLv@`PiJ9iEFLu}GpzG&z z8!8eV%EbM|!?#X+n)_&;`)CAR@E@G$P$urjR*7#j5Y&CdeZ_s$bsrUJCz&{J+IL6U zwnIL&MZ}?q2JT98Fza0kL%ZuF0v(d$slPVKjBMw@Cw*~#c z!>6<$<}Q!A%L~w@7DV!J-WK#d58qJ>V(zk1cUcj-)PlHJT)U%jzvB_Lt_0>TEq0d{ zq6_{55?m{;-OIqY`zvAp7*zK%STkp7$mJvSnky1q9}do&GATt#W8XyC&Nh=$(%jkk z?(95t{f$i(2@;0$Hu|r5(AG&#bL$G+x_orOe{h0p!axl^}6AZ%KX@ zWuLU8{HZ(N<~rYIql;^gjY{}BDv518iVjP{`6kc#CI?+n5^++8^R~!Oc|@&C!gjtc za=tD=7ySFjxhNczL`mwC4Escu1Ru03ion?kqe#CFI$!f57#QbDa8Q#4o(u5DFfc0! zLH1vQT<6)&&a*}6YJ5*+oJ8Qf?dT&OI;9=C&W3VlLlL^79mSJMaH-FM>_Z;DqtbJo zXUd#sO3^8y?eC($>rPTJNe+bkr`Qgzatc!3koLRaM)XrtmJ`R2V8zsDo#s2p@BmgmHB z(4}%9;Wuw9+QK7(6vIF9M5#NgBF?I8biuPS&IR9~9J+a0(Pmi=QWzXBYw*3~9_L!e zxt15i5pmLbE9wUof&V9^^xloKO(^?`O-WpvcrsdPaobKq7pI{JU4DszNfM;|=51Q< z@aR&SmhH?fbLJMJOHGT*zqNabdYgyus7P(6KI+sLqf13f(r?}(eTzo~8R2=shjiPS zQ{v1iLKi&y$D2fvdOPMOS)?N%v(zzX!v~%@L1zvGZ5|SD6zMN$JL?mkjNXj0S3$b8 zUOr>uxpikqfiol_0Px}=muw-o=w!>5#@>tvQY znMLSgDF*FH5T z2QP#*0Hy?w02RM3!F1~%SR3y>>qYj2y@lOjKgU+u53uu;b6Ato0PnZ1x9)~j@*1u2 z)Oyd+-z3w2RlMx8~8u*-5*>eJ~ z2Oa^XzEy$q15K=(eN5oQz$h3|9ti~WU-TU;TR9O{qq`pT|7t+>ucw}_{jPncy{fI# zuGcQo=GjA;-@XJ^d>gL~(t2uzT0s3leP4ZExf+z+;_3yko?DH2lv=5FRnz@{`@i;Y z@o)6s>tE$R*I(~H+<$;SsC=VrQ8p?!!>Wj{xa-_2;1TIax4#>8ne&(PHLP^_lC#da z$+-r;Yfg1WIR`ine0lnTeL`66HFIjKr_HaO&S(GE)Hmm>$xyqs+CO7{ZEYmr z^~<@fZ9FsT8m707C*uG2{W&)ktHWEJ2a*6eY86AyzW?fg)mduK)-lxAK^}7cZrAs^ zOtpKfV{7U`lOX5M_B`YJ^IF@o0N!Ub*XQh!h1v{7zp$pR#d_W2Wq!K<%y1M}Xl`84 zV!hIyuldpbQ^T<^aSP@sTQ9fcX@20SMU?W|hUwPxZ8ps}WDxk_4Luu5aH@HAd!FaF z=b6@yr}0lK&l;%ISqmEGSR2~$G+)V44-{$RZLfOjf*CVvp($BUw(oDgC=<_*x7N4W zG&iQH>>;g8G(fJX!s}?mehf9o;6Zx6{r3uMg=Xt6)Z5 zZT<9SbBC-Y^nl`@mf}+z49GIBZJ0KHaTA~F2nXuzdDjMgva!L@jqol6)^@P=c|B{b zzhrNnUORQc%<5USi>!5CKl5qX)TY-gZZ^Jewb@dube753eJA3W^bMw%=duH!z$M2q~I+jX}AJ^Da+fd!SxVfcvZuOkn z#V~)rt|9xM|Hd(Qby5eW#v>!x^KUzE&sY1m3fa2LX8-ap`)-l9KrBg5cg_CkzdGP1 zdG!%7@aEWDJO9+$`PsWW-nCjb=$ZvBv!L(&+18`h`bk!2&GhN>xe_$==Dl9e=HTD$ zdA5oVflP1cnW^kUWY27K&?(9MaNk-Ad3^GMcl4|U zEz=tpHdvP?6Axci_<{}mQQ(5)GXwYuSrY49d5+qa!{G)tl;6Otvt@L(Eu;8F){>8P z5On0CCRl~YT9nKNc#RM@0dZ_g^6m>ehVOr}vl?2Ret2W!oVr?Tp3DsBPLYC>`E9a{ zA^cFNf00LP_Wol*5DM~s>``OQF)|S~r`EPQS zWy$nZx9&JSFWBF4pzF7JcIw7kKkd2;`zW~yc?MY@b+~y$6q|?R=GikvukFbz>f~TbxV|lVCRr9B(7Gr73_TrT7g)%q% z_*R#82z&Xz>|6FP`%e3peT!tF($hEGqToKRhtyng`E3dAlevU@CVaAlYtMgDy=sF? z<@HV+rSxp$QQK_nl10jo;Ln_wrTEkaXC*r~{D^>`T5!>=o3S{O)t+z8;El>Ir$mv6&R&8l7;M7 zVV(BTFmL)fSZ#e=C_VUGa9MD4&Hz2-*q40E&@0+sq@u>O2n;H|(lfw2Kc ze^tLwAFAzz8PW^1zObUeBWkmHi2oP=gZ>78Z)KOVR#~9*_5I{q*ZTYaf6pG6m@3|R zcm&U!VNqvjir|@>+f)CpbQH>wg`osPdyO%>sChDNi8!AlwJm(~2(W~oD!+nD=o zZWGJJmuZ!WDIx)$Ph(D1)EUfQe$~^$bNr2u9odo}*^-W~pYN+kw69TTWjI54_||Wn z?8xS<$mR@m!GBPKOVmN?OH$=HoWYcO@#|EkJo0YttjOkIWHZlMWrB;msKz z>I?|NPeL9r8Q6_%D2{B%Ls#Yd1|>+RE;m(_#2G~4;U{HMW66y?Qyh6FA6-BHwK+6F zQgtcA609s|AP)|=G*CqmZ(#RF@^o?J>HG+H`TijZ60GauDS-jW5`Zsq{876$8HYde zROI!@(=5W@i9;bI73(~i=pS_sO)Uf`5-*CxbJ3+j;EHunh~7e|pzy569QmrfZl)<4?2K>&|wg|3`JQP`F zN4VZq^}qya)_Im;bNWV|gP;YsT81qx(x*JqrvzOUmtjkA9lLg0(IGr^%1g(zNbfF@ z-X-V?1(gJ8*?FXCoP&Azc3<5VD`}Bl<&j>c=<-8`BuLk;d+I7+&OuZP{7zYo1=@^X z8x?<~XJlEVmmBHDi=iq(N_L*LY@7q5PLFohvT<_0E6w>X7hPP-W>|tN+Cf=(KCn1_ zcocZ@ln*RU&bK8w-{zvL@dJh>CUg`@ZypIQMB|C%o06Pwa&x$gUumimByi{XTR6TQUPUhS&xiw_a_ODk15HFI{(w#+%fO#Vq{VgCddvTL{0%cD-TO{qJXC*)+FkcBQP zrzS|b&ZC^_l<}~noa$sApOtxhCb~1G4^NP0UAZUG(N>A}N~dN{&aBBi-p)K;Bzss# z$u5mL#ch%u%p9GWIXWF(luk_~)#}=+bit*#goowN0OEO?YmNppM`dM>N=KLb4oOsr zLND;7zqnQUd5flpPEdx-9GN*GbCj7mil@CIL5g+W{#F!q3frVTC-cDK%mWM2g|H(M zq*B)}^?RsOC{BJHyj|r#pohYxvW~C%MoZyk_Q@Qad0UdU%3l>-u_9)2V~hh>wct2WLjp56MhFgeT_U1Zmf~Ded2N@}o{( zuqC;SqMNoiJNd8Why>TG;}3NGQ%6eXiF5NG^v5)gfU;=!hi`=v?vd~pgVl=@e>!1gDgGMlD&1|7h3PC^5P5V3xUH@G0 zu1ItwSm)&MppY{7C$7A1+Kx!tj%;+nb5Mc=>pUX_oNSSQcrnmMoiuHG+HYw)SQ=NV zgQ23NROh{cWksFzc5h&M+W3OB@mc8NN@}ALBv$7cA>d^4NZP&ZbJe@Fad~Oua?lkY zV-uuW=j{<0Jfha+pr;*?lXgTFy5L`#Af-Cb2mvR3e>o)eQSno3+F@z$rXB929nK4) zUxGC1Jd3C~X;H^+vxr)FeO`EdF1mV6)35}WrGt7;d8}2koG=eLqjCP+nwGYYwO07i zqVS`6=xY3c%0zDwiTBam<&mU3RE5KjbPhjKjIQ_|o=D2lr4Ckc985mH3_ugYsz@#Z z2~`jdKU^MuxD;Kg0xnGFy$`@$i1CP8S3x+uE*f4}f-Y787o~%)=&b@J1)I>mql<%S*${i_r!DL5a=~lwbWkSKdHskyD8;3tt~z&ce%ii3go4 zm81MmYT8mz>R;p>;S7WC+Hb(O>|#*jvmHO%17Ea1hxGt9u@~8s>_K)1%r3hc-VH2a zr?PrB6;=rt54w8;SRdAzbz~HLC_7?j!dn2f{-Dlqls|c*HFSO49eYRQl zDfTh;VRn^$C@8a)+7a8awa}lT-Jr?#QRwZ^%b}-3>q2*d8r#ay($Kk~MWKe!bkJd& z2xAcjg$@dJ4HbqmL1S<`%ua3r6~W`2@8J9U6s;i?bPozCpy#(M_$AC!csKZJa3g5> ztqraT-VnSdxHNbk==jYG&H@#`V}geTtAd9Hdjv~Czt0J3)?c78?a}UY20DkpH~tOQ zZC1j%!n(*h6SQ*ctZM66>u_tR)z9h)x_!BpYw6}+ApQ9jDE7T${s(j~A2#ncZvw5p zW#)OXK0>2eYn})yeWT4vSbM%3tn!xy`g{tk@%O#4!+0N7_%D4nH z`4$*+j2c+mZ=5k4)cATE?+?4crol1upl$=zkK% zG~A{p)GO4B)HC5tOPyM+9;+U%4psZ9J=Lh1tGcT0|I7cQ|11B;{&(Ep-0$4&?pF5= z_j%BHTp;@3;_pAD?`WdW^_d2ZP@EE8- z&UUB3+>W;c7X(fZ%mdZGlLNTPq8^^(l5&dCJ#Bx1fPty%pJ>m~o_3>rx zX&BLQ7bxtlbe@OVDQlhEVcz_eyro)dmVeIlhUTvKOY1)OET7zXNm?&T>jh~&FRkaK z^{liuNb4DCJuR)Lr1hk!tOmv>uVx!_rzOt%s!bptK&4)>>(ODXlN0 z^|`cmNNc;aK9klqX?-fKPo(v+v_6v7htm2$TJKA1tF+#e))r}PcDPyBys)uH1TBzs zXA{Yq$;L_RaBgvtaT^oJtq>M8x6G50dzF>aI#^laCojlC< zPe673^=TIhEWtzJmw2QRtp&}sky+B3nY2_kZ!2Af3Y3afTn4rXdjGgvv& zFI!q!(#n)phP2Y9l_ssQv|MRn5#l)*`Zdk3jnqnO8d~s{Ock}wEm7O`HO;E1?U~KZ zk$OC?cJacrTgYloyOpe|U58R}bsdv5h9!-DWJKOd8gC?x3zNoqWGE+y7#pTV<_N2{ zDJps$d^yWpnDn#GNm|A|Xz?z6ueA32-7Wp@lGdHlx)-q`=mDXj_`oGwF@4zUEH-32b_IlYpAPGrmM+m)26OnRhkU$zqsG^}aY0^Yg zJP;L85wM}$A$C+m#D<87ih_uWh>D1c<*V2cQL(>InH!e7M10@(_vi1Ddp@6?+xhIY z-M!hHd1jen*DAJDv1=5&TCuAXTcX&NiY-=*&m=6Xe0a*5l_@}zO zGESbDK7qr=Ptf_QI(F{N^l=o1Y)qW#e5Hk-fzmnk$T;=LIQ7UlEyyP0tsMD39B||0yT`Q){96vFeuG++&!_#!ijEVIcVS=X27&ANTwKz-vTe06Ht4^WH zgZ-*gsPc#{h<|ER``NxzVMi7Fj1M*@dug1|e&ve`pL7aXEi@dhRtl=NwTTUJ4!armPKslyzW_##hI7m&YagZYm*G?>OIbE=EZ?m z6njar9g@upY*%cXWOG_jBZcqtb6Ri;kZ}r-HCOv(E5>=lPviIEIW27JQ%x}uXU+dn zj9LdCt@&Rn>`%r1Q0#ZbsC7_`lPc_2#ePxjXT@X*!7+YPVet~0)BHyjc1*D!6#HH= zYKwH-Z{uNst#Rh>saOxmW@nF8tXi@2;w8Kn z`>j!o+ZFD&QiaiFnqtr;nHXJQi7iz7U7{FW8tK!SDvT~=6h@aLWd82)PyJmbn-v(P z*!hZ$kZh*Evt%>;@pd)C-+`_v?ZHtVT#MS%%@)+B2dd=0(*qU6X3rkqj&5O-XV0F~ zj`M#Z1_hf_y$BEU%?rsZi;#^(wq{;J3tg5Q4q`IQ0e_@qADti>ZQLZS;)8cDL+7+nXcfl-_%57{hB zO4`DI(UM7{j9$>}0v+C{Rv6_u^IB1o+U5VEhAAVd^P8WqpC39OrE;P?cV0U;N$Rqi zq>6J&ib`{;3iOc~Bk_$Iy`wmZ9x~S@N#oL*H1f)Fs`T?x&%-yy&x`UrdaZ9#`~@|| zA5hl6x~yNn%7Q9=M1v9dMwNb1o=&e7B&l3dlS*z`*}&q0s_K%Qfdv)%@W#XO&Dr6J z^)+N?evLvo#RdAX)M5DM`1NZmj*DxGUsX|5q7O|Sif@k3Q|fCt{=Ayv_bV&T*N3DI z!8gXwkMc}U3Y z1j+}O<`wFL(gxuh1^PyLioJGrQVM3)B)}IIy}W)ozPSv{+SiL(M!TVvAAIs073NMR9&TL~Y*1 zlW>KdmfeA(!Vk+dR&MCD8{MT26UD1Qk@TZ zuPUg{D=UFZYgIwMJ|JxXzEPl86ld8(;?GJd#tRb#a&pTmFnUo+5xy~c?N@yjd9@(L;|;g+NKZvgN5=xqfufOGC^ z%)q21g@V$2jNUK3pWcst1+MNA#ToZl6Ih8<7x7A*C@V2u@SgmEMt(*<9<)hR&a*cI z_&W){D3-@GCS)7qz4PaHjp8(V{AnPNSi|G9LsTt!Wu=u>)m1tDd*}4_^{(F=g}X&@ z_B=#uofK`Hj8>8}ta?aJ@!*2WZaLk2-O{^ZydF`UED!NICdC_Ti3h`wEAt8qN(#D` zcJ*~_fIs|JcaF-*^39T>jyXMQmx3<7E~#BGQkN)BkEdcw%-(2Aq^g2pRh|2H_H|C{ zjInw~aYj7E>XLM*QI=R`c~u2fm2e3z?SIygvwUYY!e7g)yR5-k@HHN?+7h`mr=*}$ zNhe>Yv`!f7>@{)%eEXzBUSNq;QdCk%>w;j;d*EXXqM(nsoPH=CObj0B@ zVmX}i+3DH7?7HY0sJinSoYM}6N^UK~WDK~{R~D6(W@KgfGEy@zQu{R*QzV@aqfQt2 zLOC=$%PzoU(74gFCU%$vE*OxuUV~HB;UF25EbIP5va@I?Z-+@nJp%`VbXg86e%4)m{7FGw+1HM37pc8{Yh=#FWc6Ny)6d~| z=Hy>r%bOV`Nx!~koM@hLq6t~~>+1}TpZx1<8OE>m*Vl}nvNL{aN>={*Drcf6|N2^r zLXcQYFO7OLGmd9v91oF&!2WA+5;~Ma%Z`a-PfBDt;81TK1c)NcNXnM+W9GDsPv6DOj3WB!JL9l7OkkDd6QCces1v}7>~`yjkswPLK?@2k47-FvPAG1=Mv|1eZWY;1vpsRfte-paw64EG7}EMiYzVrm%JO1Z!Np?g zrmHJ1efPZ<0+dg-JNVS^rGHgEU4{u>chSbz-yQw?-g%KtLeyXJ`LlgL`{10>ty65G z@W~aEzW?sclV5+_QbcZTv2NG}d9OSj^7-roY>|BTuoLOib{=_h=9rw^9b#1H9m2b+ zYo`H6BBIrbrh~k;Ns*jZ<++YX#9pqIFB#Tp+=>)$&bo+AWVvt7_N;(Hg@(IG#~jtw z^spy1YA0r;FyywmBdvrpKZ0c{poN8@(D2_C_N+@6O(9IwvAcDl+v|)P1snq~&k?Y0 zk%h%~Jy6K_A`pivuxX2-Zn2R-DE@;aoL9IRgp-&G88;$m^5KmQ0sg_@Ni4kf#b8A_ zq#?2cnJCvp(}>*`!o47#JxIraoo$dQc!l7NRT9K3!4V>Ov`7VoaDp{%^0cS0HO0N~ zWe=u1F^&yB&~RJWY&&riQz=B2AHr=S2-}db5dKG?3D|>LC=!7dYf~p}I20C(+=U@L zb+K4P1acO1LqvMPwS=xd7#;#C`(g-2NyrIg6Vomt5j^oi?oJRNj|f$X!9t`gTLKoE zS~@@k-nOhTSV0B~C2Y3=<-9{g_X<2Ep!nbgd4dCra;bzt!W{ymiB52?MFf1HVdm|l zNFgG^?jU9zR3Ya<_*_R}%^iXgg+vLFj%AB4*rL*2%4iEkFm*vp7KP(JuoIk1phO#F z>>^@=O(`NoD~tuj4#JQaNKPScV{?jxsa!xTC~~mbSyaMsn79Nqhiv#rbJLX=TO_>f z(3V0GPDnZ^%Hqe5K-DhFgJPT=j*UeWf)azOfMnzT5qOJ`4Z>|U(B@&Y6P(?+7w>=!)$ABYz9QlVxC~{(R$K&jh``BF7e(w4Zi~dTMNtYh zv4V&+D?|<@S%dNj&kUk+2*e;}ID*&45Tsm$Q6d8SfifgHxHtv1{cyg(HtdE`PzCl3 z;V~igcuK)b6LzQ{WUx=CFhDLwjlfkgl+C-s$KhZ$eBua-egN^8CL&r0noJ~I7=#4C z&Jp+sVrl>&hiQpWSa!VjDf##zo+lyv3=(btEI}gRpzs#n5M}}*!HcyZ8(FY{`z#h1 z4eyIk1K3E@p}bP@1km87wGNc4Xg}BoUeKtx+{3Wp#E=jg8yXR&H(a3L$PtasV-YNj zfTD~POwqz2jt{yKh^#@j@I<3Xs0~UsXckZwoYsiY)-3`-cwy2ZLPTHck;eq7ZaLOG08)7!C+W2xFGuFt|e)4XE#c1B5{xj{p@Ne}&=% zf^4EW#fRhxEh~f1{(u6FR!;v9oc^Ga?HXCfS*AWvLdi4CXob`1GKg<9ScKY zzqlasRv|nNz3dSC6!}28;&zJ~?+n`RfB3ft%Y|=Mk=oEoID1(95&9Ec9!XY=DC#c(s zQV17PELeQy=fgp~VZ5B=l*2aeM6d7?h)2z`MIo>VrNM1;LPEl@-3ii)U-X2Cz&kho zwH#9nr3yO;$Qq3c)4^0>OAI z;A1Ejn~3Cw;LdV$EAPysO%I%Bw>j}kk=xd9>vaP=XTWVuObT@pTc&JI-w6>{jDB(b zTNmy6?yn0Si*4?exuH9r{rKE5+wZL_?49P?+Z{jj%kw8pH(X6RH7ZS+dEV>u9vIrH zX((b7D-TS4q1nYZq}t#vSmzq^w+Xv`EV1W?yNd8jp-%aO?g{?9qCD3V7KNI#)h?)O zZ#$t?M?8f#XsgR|M9vD$9a*$ABo;5*cim30C>ZV4?!H z3}q048+FqVwjtbwt_p~FSoqS5mo(^DV+b(1F=d5e=OA8Gy%6Vl$JN3mV3qe1&hMQ^ zou4`nJKu$M-uF0nI=4HwI5#^tz)J7yz_b6&&gIUf&c(3S`#e}PZi;i9^8)8ESna(S z{PKmJJ)K>h9bmopEN4S!nltG1I_4(jC&3)i+Z>PE4++uDvH^A8Rb>3ndVxE7de+sN}e}R9PzrtVa z?+0@!diuNiJNR3{e2RwtG+6203v(*|_MP+{_k9cVDvtOL`40HrfVmYf!fN+V`8L7) zihF%)eXC);`|EvI`y##tzBw?@Vv=u+Z=`Ps%(WQc%lGy1^?>;n?R+hKAz!91#b@~3 zKAZPX?=RkC-mkr%dq46X^zH|*kgs@mc(=l+kd5B;-n+d~@2%by-euk;-i5HT;wU|@FwxQ=Y;2b@Fe-E=P-;b+2`5g z+3DHt+2Yyk+2Fa~v(9se=Vs4x&r;7~&t;x@o|&F0F!JOA&oEDgr`Xfa6ZZ7eD?mq4w?#}LZ?iTKlJJX%wHsCh^o9j>4FW|HC zYuD$lk6Z^``(1louef%=xR)nf8(r&NcY`O(TU{$$%U~SLLf3rPEZ0=m1lK6n2v?P> z6#QG}x_Y^~yE?hrxUyZ1UFoj6F2BoZ{_co47C7cOraLA%#yCbghB(R{104B|K8_xa z&W?7D7LJf3(~;sZ9BzjVM$`OaKW6{h{<-}l`$7AD`(FDi_8s=EFiT>ieZBo|d(?ib zeT99QeTjXceZGB`eX4x|c)=WDuL4h)h4x(VhS}ZT$==4E4L&i`?RD*bJ6`M~^>v5t zwx#_;_Aj!3l08ZGSF$I_9w&Q@?6+jUCVQ0Z=VXtN{fO*gvIof?AiJOJ8)WyAeU8{>}Il?$ZjC}5ZU|5-b3~-vUieQOEyL}N_Gv|JILNnb~V}C$lgl! z7P2>!y@~89vMb5nNcIM@%g8Pzdo|f5WEYc-kX=ajGO`QE&LcaA>@2kPW{{mm_Cm6g z$xa|Umh5P<)nv~ndmh;lWQUU-Ms_IKA!G-Wts+}Vwu0;+vgKsU$d-~VAzMs#AlU(A zi^vv|?N7EJ*#ffpWb?@8k`0nI$$H6p$U4Z{(boN&EVZ|~)Y9rwORIaF!haNTr%`FAQE8`9Ij2!Mr%?%~Q3mQmOr<{z4%?lRZI}T2$%}#J?l^Em>+^snohszoL+% zWWOZ)1=-KYenR$RvWLmOPxd{s?~pw}_HDBJ$-YUJu63zl1lk5(%&y(Fw_F1x9 z$v#8&X|hj{r8b|siTFmc)bdlQ<)>1cPo;LAN-aE<+IH%lwC7r~bR|rU5~nL+>TSeV zkzG!98QE*dE+HEsdnwtA$<8J_lPsM(sndy1BTHvc>O|sn?xc<)>C8$kp%6N!Qt6yZ9Y7&rvVF+%0&U9gWT_3O{6zdXS!%H<)FxA?HKu$(;neC<-XOk*?5kvVlifv@ z+FQyF;?I$#HkR@<@yE$hyGnVK_(rmikljG`L9*1wQtl^yFWGfusdc4LyGps0LT)0v zlI)FSuOoXc*=xuyA{!xl1=)pUFDFZFDP=103&~C)JDKbxvJ=Tt8%v=!mO||+WfX;9 zK$hB7%6Y`8b)``2N}+a@LhUN0l0Kz&l|t<*h1yjLwW}0rODTo4Pd?dPved3p`Vj9; zmfBScwW}0rS1COxoLW~(cjDB>QaTgwNS4}IN_*ne(o)(Ir}mc8ns_U+)W%Y%MWr;N zkPNbEWb2U)lJ%4Il68~S$!cip{YCZTM_f9NBGTpCwCYO1-CuKS}lp zvX7J9O!hIdo5(&&md>Dhj}YHL_F=LQkzG%g&Y*gC6JJaAcCxpST}5^U+2v%fBTMH_ zy+y?1!ONFJD=>uWap8cOLh*~i_oUc#QuL9`$$pyjBuXqZ4QB+b}q~i=wN1> znb5;_8h=9X`l#^{^sM(7JD^v+0oFfX4Qq@qf!_2?V*>P~3!x9)_5Z9d0qA{x3u_S^ z^uFQU3BAru-ut1)xyri~dYf~+Q=q3g1Xd=_i9KUye4!y>G?pL74xY@lP zdW$!^mqAZ)9;{t3#y!kk3O&T0?oQAS}T^ZplhbJq&oSosRN@HgVJW&yjU*KuVr;da0BxR>#D?CNH-w}l;C`%m+q5n9= zF$(&Q#g1I)H+FDjL!U9|a6*6axcw;f6%W|=KtJ&*`v&MEuC_0S{^0`qOz0bq{6FuX z!RPe}qrzSR{mnl1uF%&E+0&q(Y12=_8VsN7hxC2=EBZElv%X$mtKY0I(oaVjr&wgPdu_%ckMWtu4uhePeX7_e ziXBnxW5qsF>_f#4EB1k6hZK8Xv4e`er`WrSy`$Ix#oktIzhZAGwokD)6?;Rm*A?5V z*lUXIQS4R4b}P0^u~!s(S+Sjpy`XuF>{4cLd5rmrU98wV#pWtD zN3q$8&0;p)W6V%&x?bRjfp@V#Nk3HbAi=#R?Vc zuUJ3D3KYv%EKjjq#c~u2E7n)BK8p2Lte0ZvD%Ml6a}?{L*x8D8SFD?2T@~x1SZBq~ zQmm6=9Tn@KSbN3VDb`l8Hj1@Ytd(Ld6>FhbbH%b1Yo=J1VoenbDb_@>#)>sktf68J z6w6dBL$P$l>MNF}SgK+viq%uBu3~i*3o2$Zo9Hq8iun}tD&|ql&1}5aa55X@4V+Ny zC&i94EAa-7DfWY6-!m)n2EJA78^yk6R^SaBRqRW}zF?N)4ScTHXNrBwtdBQvM6r*V z_4EclRP3-~A293g4ahqpu!Ab>J!YM~fp-);pxE2Y+Ia)=?gwn23VTzrHxzrFSqpFA zHO2NQ_NrpL72CzEnK$sVVmq0Iynz=Ldx2SFZ{T@m@a&>MJ;S*ADeEVDFk;2Fha zT|$_w%evlxtU+M127$>M^m_xc-hjz^119SYn5;KovfiBDfUGTGvbKQ9+5#qP3z)1e z%^Q$)1WeWuFj+^yxQ<{|?Eu#dGOig|sXD;*fsE?|7CsJeEg<7sK*qIzjB5cI*8(!G z1z2}Dz-5n&%N~}&4RDDg;}S>4C64R{DqUpPGdt=HEK}@SW}kWk*AT<+<6IxGN^0P0 z_32fLEm7=BW*>P2ixi6}b_KKdy@AUWyG*f564ZU*Y0)hDz^)M_nhtu z!8&~lot@wp{u>>=;CIPe?K%2S`aSvxy$*P$n{R8c9no&l`oRE%ji-8V|KC_ylpT-b zba|Wt1Ap!ic14bpKNA!muT>FL zZmKVCVv8!pQS?L(6F_0&eS*s7T2;ugKy`ndG%r?##45HZR~TitDu@&QvIrAfh}($mg@p7Cyf1;*O0JBYE>)DDei|2;)aIe z2DT{GFN%K5p(=YPC2YgLO6lVIOmRJ17GfvnH3&Uis}Q$_>oUc4xy&h4RY==fbRe)?3z8EYk&A)EgLO59c)${e!jY<>ckTd{3BCsf%l~#kF9Yh-*=; zBFYZWwZTcLTVInJO`@+Z8C+adbjrzwE|#_sOWC66peQ>+*D8}lANUWV?6N~#(_CDm zlSR$4D7r|8icP+D-2Wdm!AXWLu5Ko-W{ZmDQFfS)enk>0=Dz=+NG>z6>*if&P~*~D6vBBhXi=^_iVoQ!v&j{*u68+? z)XI;tOZgg{^{l8# z3!US{PsN!HXX@}qnY<`Fm9N2t(v7vs@JTqM!3-VVsFD+9*YY(ugIZpz3Z8z`Gp6Gk zHFBfvxv=4TRYGCkP^$(tq-jm2>C-Z&p-4#-{ma)_W7pRtB0YJXeubafe5wv_)GLm% zzxf(GgI#xKJuasUvoF-)jdBB`?3BKS*17D=a#&zfvZml0#Rf*%IeiTmnQPB1MkP17 z*<>Bwtj4bDYfxMIFKX5+{G?`+ba-<{*E_iNl=BV%R+5fTsWdG9sf&ESUOZKPj58Lmw-(^|Gw62{4I^*;oo!^#5v!LR-ou6JBJU5~?P?3J#F zYXU+z#!}lnRB$(z5 zIbDwL9fuuz^bxjS98Wmb+U~L~aNG!9^ADSQ&1cPrY>%6_!fb^3=5&~eFv2W{SqMGM zHZc3ZFa?Z@_{7+6yktB9vkY#A@ep%tBaE>|l~Dlm37WV+bK8x&h68*oegks|-U{pt zJRNu_5QA9*SHhYKlLI3IWiU^mTcA~-LBI%TFf-sw{~>oK`1PNum*`==3;Z^oq5ExL z*$&&@w3XPxwl207@VojU_)UE?{GPr{K3gfJWuxcMX`S!a8^F4QumUw~oNL`U%ev9h zy5X~IwED}s(agG$X5DaDHd_AV1#eKaS~o7SZd_R7F-okv6k9h6-M8TX@96 z7g+cR3m<0TLoB??!YeGi+`>yOyx796c`vkt_p|VP3(vLiJ{I27!h2YFR}1fK;hikJ zy@j{2@Rk77EaG~f^tJ-Rl=z_$n+*Y%{so5EwYYOC6Pm->k=yn*_B+XtPXU)icG=`<8#KY=8 zLk)N8WK7RAShsF|3a$DbzbfL=q$vw2(Yz0?oLmhn-Hp~taLMiXei%A-j8;rxc=rQ2 z&RnzgFzRudWqs@VA5jUNT711eSBxcqE5;J=PGXe(i2-jW2JB4?*pnDADKTJNVnB6b z!1;**BN79KCI$>n45&;D7?co@b|^96-NXPsaZeRcn#w*p!yY?rT>FbC%8Y683rKrT zsU^U2A85ASa$S7d!k@J8$1QxLh2L-CmU~*WHJ0$(E!=W{Yi7B3HCt%e=Q0bo+|!!P zw}j8L@HrMf%fe?`_;d@OYT;8Xe3FHaNi4zQ#DJp2fIf)u2ji=S|9=eXdfy0J6b ztf6xruk9TswVBIb;HHk7+4>zy0*23SO`h%Xgl&Bv?SP@J@3CA@nzglTWW5m38{w6M z{N4p-NX;3uwBe^;Qc|a#z8yGn`nLa~)3<$_PT$toCTusdT)&!GzX1n_Sw0DPEE{g? zH$eAI)=!pOH|AM4W?45HTQ`E%4VPuZb-883F~Yhr$hu+us_u}bN?+m~*01UgYfkOf zV5H>_n~&#`{e+q%)EuHF)AZ~C0klc$fLRSH#I|H0&-d-z+6+zS>|qc1V> zO*=Qh>9gm|0+l(lHCdC>r}Gl&^_^UEYFnJXo%VRb_9Ie%!qmxQ=gih$JAHH9>6`L= zm_A|h#A;kUG;0?(NDSyODJ{jil``JCRqx@`w#uwq<}cPQ7p)Ee#WXIB7Oo*iYcdd< z&F2|>I#@AUA%Q+E(KSnZMGe@ zOKs_;`WZAb7gqC)HdlCwJ)s_g*a3IpEirP>xj46V*G(IcC%c=4_;qbRe zyg)v$A^vG8+1Ehq(*;^o>KlXpIVyEbQu@rQ#2&M`WZtYN-qZzJ&I>wit}!p4S`{k6 z<8?K7eb&Vrb;KKNF@A0g{Wn8=aKDZSfAPG0k`zDwz+D%wr-|3uayHPNbB)!N(6@mi{QO&4fUqfZn)JcCC2 zB#n=(8q`3zEcVnDdvt-81<=uRjRGGg3s5dzZ6IFN#jAA%ITP&@MUT%l3LLfykSk*H zA}@BQiQT%`U03YpVnD~wH5S7MNdiTsR2sV2l__?CO%=OPqf1o!fNliE0N&`~FJ7aE zq$BegGr}EnRHW#kLf&4JFQwN{7?nBR`>Oy(ODgyiIt-R%{MiGsISmIVg&5rol^b`*Xof zJXL4BQSOt?%d$iQ^b+M-2bMr+W+nB+7F}$qE4H9!VU%4@*D&7b&6*y-(^*G@(O|sM z(+$PbY&m)Ce7c6AE^qw16#Xn9NBBI|Ts)-rl#w{+P^Ethm$?tR6MQ=w5V4e zWp~y!jQrShCOtK#Y;(5QtP8Z9MD%W5VWsfx#kLdy}>J5ytx9b|dNbEkd zo-Q^u5u4bu8auzPL2cK+tMQPqN1KR8b%7SuDx&NJyM{qrul&2(Y2(Z`wh$Y2ffhx} zqv#?V3NU#z&ddKUY8h;{;ViL17aOw029&Ifvde63Xi`JmS*s+EI6G~O)I%-BL%KlA zxgX03O&-Gb(tlCq-{-`GEyRO5SBRbMv7RkT4vLOu$>dRSFZ>rt z`h`ln?$!lb6s?S&&!Wk#>bd_W$|ZYOOL3Pj(6Z{t+Elll zLDl-JyI9v!tkcPI0i0J`0X+L(RAs5&*+Sf@3$!R&9v#7=$!F@;{~}6dx;9&^)dgCV z926bSlF4oLng1fmB^qlkV!A+!npM$ZteM=Vwwyupw6RxWO)IfRC(B74T3b?|K7%Y| zTn@q#cQhAw=wwl|GCG7clbh62XVA2c#uB%;6u0YSQMEiem{pVO>B%#wVoJG8Z#zre zriksfDgI_{*K^3F6t|RX8_N8XL{Rs zKJ#4f>F@p>e5g%wH-**fSHW-VI(P}3=j`J6%5gW01u*Qp!0%W${Rdd>Z;GB}d*8O) zmaBcQJ)n)&LSio*?6g<^m>d(C)TK2WTRR?u%c=L3lUG$VggSDSy5?)3`PfoL#^i{| zq&86%N|&~gdMF_6h6lu?^ZQ9g`wE9y5q{&YjvoXs^SThuIy$-$6$Nl8nuP4iSX z9gV;liG~)n3S)98WYWY3v;JvX`T5mxjq0Kj8a$`j8)|l)EK2o@$)S)*foHLu< z{$R^llOr9IvlggL#Cio1zlX%{I$6$|9P^l*HNRC(R#`k*y7;ZB_zi5j_zh+H$K+7Q z$orifp4ffgnD z#^l(>q=%2D$0~tMxkNs-`=y@vMHgsMp)e-LGbUdt+*XCk!Ik(#0hZvZsDSGjofG2c zhT>QlSP?=m>j;CeA%*}CQ~@LD!*)K=_#EbGsKU& zK+DOI0~eE%qg!>LsxU#PWR9haW4b`g$&o`Alaph!%Fyi{pR&ql>ALtKL;S!Nb^6De z@>ihb%F?Vl`31>J-!~B7>jEt*4TyzUDQRY$DXdEI-xlz}R&{B?PH2Q!xJy?#@|+v@|?kNhfqH@&^YK@s%#nqD)?_Auu9U!(fGrvqJB=Pt{hyB>;J)G&&BwA%9kPWC0mrsjb*Z2a=HJWCHi)(!>{RQKVligGG|QDj2`jCQ=PwMssxWzfAEzww$^2+A?>tRw3(6?emcM zTo-6ju79jP%O$mS<5#O3{lHRM24B*O@^Y$RjvnOjvj*Zbww%MX+H&}dRS8QyLFm&= z@u@D*qEKNhm4%WnyT;E}A$hHYFCvwBFue*BrHfA*ici>b?ow*Y-3hA{T(;q)J6-8W z193zbXgPQFYRlbERwc}xRR@ac<4o}}TNEmf)n%dN{?+k+6FTkg{ZY2~NEc{PvLsfA zC6gb;{%Dmv_4`y}5;M7ay=i&HgciHIv)!_f}2(en;OlEI*kZY9J2j0xc>Hj0IRJ zd8Y7piAwS8TF$RPyNkM-zE@worwg>Gk{k1~O7ey4Ypcp>*Lq#N+eEwzHch;XBH@^aMUuXW8DCjN z;`e4KXkEOMBHm$(66pVLy#1gsPnyTT|Nas4Ab8*3ZSDZy`*av?0cNkm1%l>*}9e4y> zVJrm?`}4sk;3Q)dJY6UUzkp%zt>4LL1)lZOjUf2d7cd(B82BAH0zUQk1$Ki+{Vnhe zVtrs;U^R@3UmA#jFa4Q;N$^x+SfCvI=!XM6z>9vXKnQ&32LrJ1vHzt182HaW;y>u$ z=j-Ha1wQN3eL?V8FT5wgU;R<<5%3wf&$}CZ)o%f>f$P2NysN=a{ZelPywuP1P6E$? z!@T9-p*{@013P(Jc|+ixKInCWZ~Bv-W8gpVi02^qrQZ!61h;rLdDeqZ`qiEl;E_J! znGaqBCwWGJH~Mn$BN+Dd@N@!C^dV0=_@Q@u1o#p><~|BO=nsN7!QJj1?k(`_WIgy# zSnXcnUJ4!s=euXZvy@TbQ?T4!=njL|`A+Uu;B!9R9R!c_!gUh-%^wBNf(KpuT)V;7 z{1(?H@HD^9wHmw&E`|9G^IbE+zu+j>FjqNvm=C*pfPeW`t`PVb47%K~uER<2GI-Q^ z#CZ_bblC0O0nchS!KjUO&ehHpu$n^zd=1WYPI8Wdl^n{Qg|Lo84`(OvHyCoJ!x|2- zcn_@LaLjQOygM9p?1R-Cb~v_x*TMCUb+B^73h+A^am;tj1i$s8VEjk9qtFos--DeT zt-xb_I(Q#+JB0ltc&k5ZKVm=V-|gQ4YZ`3wuZI;4R{K}LdIk~yd|1t3l7AG8H7WNO z!b%1`{GDJOgOEQRRxxnH_>+^qW4@!Xg26%GK3KnChi?n4Ua;P`4t!Fq@GXUv3+DS~ z!ny^ce8XVXf;^xFTkM;_8~!@*bhyI4)Ex9FR|JK;KgwZ1}M3jPV_!|aPm`Y7;F zSgsf9;Zu*WwAH~!gXJz5>=N7%ER_h)#9;fO;6TFl!6L%@gZ&Bb4HgjI9n2$K7tA4y z2K!3vBe6H(>fpH&drCZq@Rs1&61x+w40e^+MPg^d<-tx8I}%*p~2`U~7r3 z2$uv~NNi4cMKDCTAlOi11Hw^3n?!iX1o<6d{y|u2o**nYk4yZKu-N=T;`b82LxlM> zS4+G~;u48hN?a^)k;I6^D>(@^h*e*rs{`>?XsheqfvG2axIq@GSW`)e~$}Jpp!* z;Z$F+-A-;(y}@=HxlQ#4+f;vmEoC^>BWzPW0%ptbW)ia`HkC;A4Er^a+l?hQl1TLr zpHuwWYpv%bVMiK!A(B-SIGW(Fmi5)Hx$rca_*qDP`zqKj~hX_u%Io^J|9;~$BC z6Am+|9h$?8-{tmigoBJpUs+Nn9n_(^V4dxh0vsGR~*I|Zb63ivJV2l$P|uO)sZ z@ub_@2afCB7r^fW)^Y z?w9zM#C;Oql=z0k*CpuSk4Z;!cS#NqkY_3leuod|u*qiO)&g zCh=K`TO~dtaf`&KB|atbNr_KLd|cvYiH}L#B=J#+8znv>af8H%B|aqaL5b@nJ|OXa ziT6poSK>Vq@0NI%#B~zyl(<%6Okz~x8i{vEyj|jIiML6-RpKoYZnv50aCgEDP4dU$@nuRQaT}=(g{fE1f+BVQaS-Coq&{1KuRZIJe?Dy-gt@Q zB#xChM&f9Rqa;>Kyg=gl5=RnVVh)!$OyW?9LnIECSS7JiVui#(63Zo)Ni3CEBC%NF zK#2n+7D+6W*dGyA@}m3#Qhos`zkrlqK*}#5egP@Jfagj55fUl? z5Kj3Ar2GR?{sAfffRukg%0D3GACU47Ncjh(`~y<{0V)50lz%|VKOp5Fkn#^m`3H>W zzn@HBfy8`?c@lFa=12@n>?^U4#NHBnNjz6#Pl@M9>>=@NiQOf3lh{>a7m1xEo+Yu9 z#Eud>NNg{$oy4{h+emCJv6aM@5?e@YE-_nTGl^Len@S8xY$CC-#6}VuN^Br8Q(}h1 zbcyvPrb$edm?E*B#JUpeNDN9e2`3tUi9U&5i5`h=!tsWaa8Tfc#GfP{CoBmZllX(g z?+J?n-%9-E|Mvg?Z~y=Q_W%EX_WwQRgLpm#-R62im-zsp)4ZS1Vcth*H}56X&3g!K z=G}yvc^9ED*CCq!n0FHXZLTH!%Zw5JX+{bEFxL?NZr(xon|V9oNpm&fujXxpznHfY z{%qbtc*4Ay@F(*o!sF&D!XM3*gvZPkgg=-!5`J$kC;ZO5f$&@Ndctqa>j=L#ml1wt zUQ2k?TuS(*c@5zgvS0r{^D5f@++0HVnRzAQr{-e9Ps~MxN6ZM}$L1A;ADIgYKQu2V zJZxS@_<{W1bx3~idf&W+!VjAB3Ez|7yY4aRerMh-`}ud7biaeAnsmQ2?=Z3Z<77|RkEMI zQugy#m~_80Z3(NkBm4PRn{>Z3 zuaf=zC9GN`f?#pHwKW8vY`8k7G!p|AZVt&qG z4&>(y<^bbsidSTOMObJYCG2l}N!ZW$g0R5&A7Q@nIbojh8DXyRDPfNB31QecLfF^% zn6QuW5n*rRL&9FhVZw8b4+wi2hX~Ix-Y4u~93(v3c#p8V@h)LE;~m1T#sR`E#@mFQ zjs1jY8E+AGGWHR6G~OiaV7x)t-gup`ow1j&t??RR8)FY)YvWbIR>p3^mc}l^7RD=t z&5f4{vyGjE&5V}_vy2xBn;I_=hKwDAO^oLW8ynjR8yU|LHZ-;oHZYzg%rv$VW*E;9 zrW;!b>l;rKrWsEWrW#KYrWj8U)-xU_tZQs0tYbVz7&JB!n#QAqhOv<_U_3(TH#QLZ zjE4!m#zTZ2<3U2Vv7XRnJV59)?k98@_Yv9+y3fFT&Uies0ix#`w&*lD0oJ788DAEFwH&LMrRsUOZN4M>^#^3X{%zT>-!J?1Z^?fBK657R|E4*E@D16o ze_i(L_sV|#YqDRzNA~MqmHqnNvR}VT_Um6UCy>s|=6J%L<~YKa%&~+onqvrGFh>*a zFh>zSZ&nj-H!mQ3&OD!Rn>mv3S@S%?t>y^AXJkKri#d$8pEidQK4lIee9|0D_=H(S z__$d~xY?{Ae9Rm~xXCOheAFx>+-Q~(K4O*-ZZL}pA2tUPK4cCce9$Z+TyGWV|08dN{VJH}kvK48oteA}2!xZjvX_?B@I;XZ@v$9Pjd zA9}->PT{W`(+Kw(Qwd))E+pJzOd)*Lm`u3am_)eCm`M1Fd=Bxld=9ZwK8JWoK8JWw zK8JWgK8M&LpF=z^pF?by&mo?Z&mp$S=Mc}z=MY;BsvqMSV>lgei+m38w0sWnlza~H zq$Ic%I6U4 z<#UJ!aS8nQ*0X7U2q`6XA_U zN5bVs2f`bS_Jr3P?Fg?k+7d1^+7MoAv?g3?v?9F5Xi0dr(SqL?0cM`r%j^a#0=9&402yXo(`VX^zl>juA7CWFC-5uD+s0nw zWn;VXG>ip!5M~yv0dIIW7*`utz-WLe;1O@6G1w?I`om~|bHFoRTNq;7$Vf9x7!RNY zeh>T<_%`rA@R0W&j0ku&@M7TEz!QN-0`~{*gfRgt1Ixf$-erNgf$4#XFe+eppdv6Z zkRRwB=pN_@;{uunG6VGj{(u8kG58fm27Ki!_7%X2_GiP`fY!b&UjtarKHzhD|AEl~ zKf-GEpLq{^-+?s+cft68XS|!e4}0(R#$YA;8)1aNBJTq4Y*@#By!Qg{P#7an1nUc) z>+R}o?``320;2@#c)ea7RvG*mRtpD)521 z#CN%Go^J+>Dj4k>;j1(*0 zgWK(^?AO7XikI8xfv3w!_R;nc_DXxPy#Q7~JR8Ouw6R;=h z>4)`q^f&ZfFy7!9@ZI>Zey<+WZ^f|%+R|+E1DIuD%Qg=&yw7lu;XQ_T8Qx(y!0(D;eLku817}5 z#4wRz0>gNQaSUS_#xRU#7{yS{Z~?>l3?muNV;I3OoM9NlP=+B4gBhwADj6ym1~HT~ zlrfYtlrR)C3}hIfjp)W%phTaUl7|vzr$#4!s4~DZD zx-)cR=*rNAp)|!jh9e9gGknDGA;V#Y4;T(Hyw7lu;XQ_T8Qx(y z!0(D;eLku z817}bhv9C9yBO9n+{v((A;u78Si^7!!|e>K8E#{^mEjhKn;C9mSjDiCVFkmD49gjA zV7Q*)I)-Ho*D@?+xQ5|s0+X|1a#l>vipg0qIV&b-#pJA*oE4L^VschY&Wg!dF*z$H zXT{{Kn4A@pvtn{qOwNkQSur^)CTGRuteBh?le1!SR!q){$yqUFR<7b4En&ElVKKuZ zh6uwI3=0`9XSj^vQicT#moUs{xR_xc!(4_r46_+#Fo49<$dSur>(24}_KtQedXgR^3A zRt(OH!C5glD+Xu9;H(&&6@#;4a8?YNl}VhVi3}4M#xsm#7|Sq*VKl=ihH8cj7|v%H z$#5RS2!`Pd!x)A#3}G0|P{mNmP{A;Wp`4+Np_IUs=X(hU7BdWF7{E}(P{`1qp&vs5 zLq08-~^ltr%J|v|wn?kj>DHA&a3YLx`aXLt}56C%vYY;%xw^;c1ZlQ@fWO7ko8a>@&ItsqU47H2c$#H6FCi6S_utRknV zO4sr;w0y9sT0Ux=9lHo7Re-;!Bu`W3ptuvWS>&5|yhqE`iVQ6`L(9dOxiRT!s!`hn zM`mWZ^fU$T&rW%mLSJa$!0ct87S^?}R|}&^X-vA7f`uXyrkj^p=X8)uDLHGXxGWDA zVv5f+(fVd-eRZ-Z*e@m>OeM{3GfR^Maf*+cL9F#@ruEUaKABn{6v~N7uTsf{TT-J? zc{vno?^LZfThtg3lb)oKCtVgNY2*y9Dn#D{FsV&?Gw9V=>!oXGQ7ktmok%4&nSn`S zC1vb2Lf6hs)6QkfBGPkIvdDlW5t;#2o)4ZUdZuYT*`i26O!|sSp50nhqX_$*0G)F( zv~$?9j`R_gtW%hzLsR1m`sKhT ztRwwGCF}G{(gCkc1?6#_?ipHlT|QIp8Itq%0qOS4gq0jkT`2hL&?D{XQkNHaG{N9InQteqQboplW@N)^YXi>IXNv1U$^lqG*k?yQh@mad^ixqdO}-6^@; z!%1?M>3xvJPMKOKwp>)wol|mA^{r7TKi)7qW@sIC4K3>Qib?-Xt&^^9eXKf=pCNG8 z>sp5ltpnJg)&Zjz#iXaEWM3n_t8ZFI6IRv44+n3CI5Ppg=m zVR(AFS~t{M>l#{=%8N-iOi7a!&2ti@X!bs*P1jo0*IKbfm4PwocqwTLrrG0kmHtJz z2<_?Kb#$#|6Rjm%R2v?X{+7ljwSlv(YCQGPnmf5BoOQ0d*1WyeTqld#{bSPaQqr_j zv-`hm>sodLEt@SWmB(uHwPbd)D&bipYcy$2tkx`BYo?P$$pNt{p01hPNV?V{X>BA~ zjkPRYLyKaCu}T(8ZX{i-VsbjZwHS4+X+y0kTa+q_Rj^d@S=HGp6?YJDx>l%>7Sc7e zTx^3_D`^U~d6rd6esfVJcWRzEoTyE*wI*y)vLaT_l7o}lOQ#wn{D`U~*3vEZMDBfh1qO~>}g|tSxh8E@e$4Xf)x!rX*T@HMaC_VBapfzluHPp$X zQbDYQm6ETt?X5~hrErmh%UfJb*BWGK4cMYieyo^vlDs~c?W{VoB2LLTG?|>zyaH=#GSamST|pWJ$I$2F|i{vSh2FlZ*@HYz&xgz<>$(?x-;V5(o*Q1x&9Y zKnNrxp@$9$9Rh*x^X%-5?zDHw=llBozW;q>n0wzd&%9^mnX-GkGtcD86hq{wI<%Z| z7^m3MM2@i+{+w|%N2VAe%j!e5jK#38-(8Z-0*wy0`=cIGL=S+0lU+=+S;$IOldfdN ziJW>D5cd#S<7k#lF+`T8L)DDM;QZC?Ph|N|<;pCgnKH!?8CM>vVvNSiNl_vrT76Z` zv7^68n9~jF@lubhg~--+sFJZ6yr#Gd6WMhCap@huxyz_qrWhh^?V$=rYrJ(TNI{D} z450J2t$|i>O`t9ovf2jH)z+7Si2wQ$Y)&tA$`nInYdo}!u^IeHxV?#N)io_OsV~Nk z0_u<{hRA1k?IdyfDsgqWT3kzAQ{nx)it{n&FP%|%%f8LI$+^n8$XVjdgeL+Y zI9_r*wyG9+CIL-q9fcQ(S2bz4T4`Cd7^e@vJuyg%>)6J&KO}kCKrsLq9@;p-^_$mBGc^ghC zya)D)U#{$d{o%(e^~zC7k>ZxWhj+8j$hXUv$*0S`@^NyFJX`k3vh=R>v~-(vDV%E1 zBeh6X(i|yIvd~ZIt9Y2*$Y8j3C=^-&hi}0%4o|}QLV0(9U|dIdu)QOcS*sm_G6Y(A z-)kow{okbvb%rgc09|Is@b=6F+F>pL9MFzASc2uD;pX;m_~e11&b-6gSshH+q#gC; z*{q$L#6)A$M1$2)H5t(MTqP)PIYL@lg^xiL}FJTe?MuMkFuVu7S;pufvpJ671;K4h*+ z%%OP*&Yb8tK~<8ZysG)M`Mp%}kU) zrw^N_B^C}O4REH8xpa(Bt46_CAr{V?XyMx4k#M&;KQRw%Uh_EKU$Fsenrh8CqpjZ? zsv12t)0~w^SB0l%nmt@p13vIs2Ys6NDHzId=9AvJO)qfsC5lbIaSi%@8&7tU#I?P%|XQw3|=JB9~_vW^zXdWJDo zbIsXBG++6P1FMA9~cUeYq+6wY2N^-M!AtS;i}Nd zIeLo!kI!rF+mpe@j#^xFjSHp>d)*7Joj>wj>_SRL-vdn*Y*qnON5VOu3gg`!V3a9Yn(h+8#O$lYGh~#BH)0;naOgz zN}l48OGl+RW$aMp;!#QU$l%FY^0Wj&2v3U|$&{yz%Bp%p&^MCORdjatiiYa!)bABG z2(xx}Cf`M@@4pd zpUL~+%-;6?%_Hrbp(d7qxs~0nnJcdg{(Yso&^Dts^;8@6RF6^S{=g`6oRC5mfHki9 z*nda!a41GS>$OIi<*zAZ^Ha!7MwvNuDnV@8SFZh2$WCwf>vkrLbl{4nF!O zz?%DW;S_qO<0;2Eu!dUBcqrqHjKvueoB^=Yew6J~+s|$7wo>c6)@!UM!f*0FfiJrC zmOS%|=F7}0%qn<^JJ)oS@}Y8tQYC*W$K=)0kJ7KDZYiHWMR(Harjb$8Xq z2ZrbQ-83>x^C!{sS*Sh9iR%8UjZbpUO-J@ktJ>{Z3ay zd?()2QhyvA^+nGqpy#j<`I@7;8*Af}_p|>qAAiRVl>7X29}AJPE~@*pHa5apsVQrl zS}N9@TwY z8=toC9ZROIlW47}2{yrEf)<&c>8EExIFX)-OifYUyS4G*<{4v|T5786Ti{JO__AeW z!Pa_wMR~?_dIp3=^bBNN8Py$K8#~FKv5ZYCgEecx`mMpLrp9LUOfS1oCEG+7Igb9q$v zgKg|Jr>5YnYFbs>P!G+$YPn2Lok&k*Au_c@bywKNH&UmhVB$4~NeT(?a)_0;aQ9$VK~N-Zl^D}==Sk+JEp9QqVsD=Su}g>>Zk4c>Zh@% zII{1s28s^2=r);dbJA@{wK%FfzBaBBIN9$W8lC*%BnNcEO-EEZ!a_`55!Jn28{g_| z8@fr|mKgXVNeWSsiru*2X#vk0Ge9#;e1S zN{3j8$(KZRpVre1y&*g%xpw)J=}EctBnUn9Buqa)imt4&H6VS`QJn6fgmw&JGY-&g zE;^7$2QcA^s7LPrV^8CBpTwKd(2k=G+3lu%GVOEGJ|qi7b#K)M2gU9|zq?OwNW6^K z!21q%f+g+EroFNjB1KhHcTR15y*4nGBH;u}x^*1gDr+IKEQ#vwsEy|AAIrj;V@nR* zBGWA%x&_lOh@unfl*6Krn^QM}jdo-GyT{XROt~V84yQ4t!JfUkJ>mB~{FqHx7^n+y zU84z| ziG|D{7Di$;$mX#m{A5wuo=4kd+MZ3@kzzsAoUUoR^rq$QVWUB8ir{z}#FW)h6HDox zF?Pla@um%h6WbNOVWX~h&=X{OLIynnX%otn{d{wQtvJf6@p%^&8%iU;!>cE3~L|olMuc={i;olCByX{q7T(72puZhWfVk z!Mgh8P>r>jbS(>!AaLk(Mqum;K?4EYf;3h%$aGCMUBg18Sa#?%MqzLc?>^B$QQcBe z3wNe%<0yt%v<(>+9y(PwioupA=(ZFlu+bK}&P7`$&=yR(;?OB9sd1t>UbpAq*oi_H zpfy*zX|qh5U9_1QV^=z3Z1B5}W!7vSGx0WM(h!j|6l0!Qfi*e#zKbD0}yp1^&`go&kGTVo|SG|FXQU&dRC2X>8i1I?80*GbZuJaq0mJ!#Ps!t zMp$~|qLnpc)3?BHf)+gBMJ!NXo=@Q(6hl_AVa8?rDb<#aD`CZa?PLn;@-aj*yRDtB zke-p{U&HR>Yve274fu#D$27&%V+xwqm{yu9;2r#fHjm9>$}myoYuNw%mhxwKYyPNt zwRt)0@t$j*V)mMI6j?sToMEQ0!~0{?Tc$soes6lzbg$``rklW1{1vdX`%Kd*rZ7A$ zSYvH~-Rg_1v*j1$2VlQ?zBS8gv-}9}^*@B2>MvV8(@$6#g?-zr&_|6 z9!n5*r?0eBSQc1jSc)v;VPCq*{GItz^SkE1ng0Mg(jPGY+I+M58uJzA3t%t$4)cJl znnUId?yuY*!Cv{3tefF9!oSOZalhsMGk7<66g;Eet}IhdS8kWjbN|$R2t0M2<33%v z)V9u6W%7a_tF7*K_d0hYcsMxPJ=0y{&Ua_IZQw8GOYlka2KX2Go$F!ny73Fw4dBz@ zV%OQOQ(a+Kk1J?BQ{D|e4OY4;Tnk(?Tt%+&;LX6~{LXrj^9$$4&Uc)z!TAQyJD+ks z?7UB&Cl|>!=^I#6@DlD7$6fB=;ouhM_0FrEmpJ#yC(AX;R_AHXVdoa`aIn_d;H-pG z56Yc>@NJ+v&5rLKpTUU-ufl%#r@*iNosL@^*Me953mto5RmPyB%hqW9qjJb`yrTtn z!Y_5qgEbljjyz?P!{tyi{smt3-^uuE#tYz6|Ne|$W&BL;gZ=N9XPlq02R!QcTmNnS z-1@%tHS2Gzw_2~WUJ0urrYQx=IK?SXmB+)=oKK{`NzW+vDnHHWggx@j8MW|qXbzmZ zFgYXJcC>A#tyq3SIVZyor!RbE|H%HP+#xr~>)`~3XYG&J?*;z~H^KP}m)p;`?}3#d z{q|1#aj>_f*1p(2$2L*^7EWK7Y|jR#3V%^Xq=)6_VSoH@uq{nNf-C_FOl3x?V|r~Q-Zg||+7lOag) z03vwL-ahSg4fXW(OrNaOYZ%@Qs9792S8(Lexbe+_;~%WJ{WJP8vafx6a7Gsw!Hokj z_iXBz{s)0x5a@X=L8z~9`ZJmg>M`XdO$G*>@;iaFSTyRCM}+KQf$l}r3uT`2GYw&h zVP_H8dOGZ}!jGdBEKgti;4~9UwYg`ysFRw<(@z~>vD>?*!d4&T><>+?VzQq8sR4$d zX&15BzMg4%l|eQ~lR@4&zZU2Yfo>FNtw1afNZ}Dy^(^PH>Ma6|*HC|Z-}K9c40csv z#bAFRew-rYH3BUW=oo=mxzRo|^adJt2?uBCAeT31?pwMfdmaa~b&%P^0c+pT=626p zS}urwp`#$3$57XB(Psip+Kjz z^%?_Wd{EE422C%tEhOD4&`k{WZ}u~m5Fpl4h%V-_MPCb~jhSAEEn+jWSGOV{-%|Hr^0Lh2CC)+68JAXaPsoKMV9nfwXas zd03wmvPU_RFXTvKy%+T8M!ox$R&uaN2POA%aEA`Yea!*0E6hcuH)x!Qt{3P!4Z$2( zx?e-#P^dJ52se7!y4;o@I0y`KJJ)*DfF0$iYO>g(wra5ibN zJ^jIPp9pjgN4Z*m1HB;C`bS@AxI6D=Ef$bNo4HVCU1ybZD5A+g+}sCCEBu!+H9(9G zWm*9+w&+?OTXY3Sg)eiIUCU9HHces*brqMnwW$MTZdPPK8JDow&YmJ|5`h(jJw-WO zmQ^TFfk4`Hk9t{|LgwKpQ)@PimCxcbX+B4E7<*7(=O+0c4sPXOAqUem?arfSsP}VZ z{#Kx`G}OL*TanhW;Tk!Rw?dZ<j&iht44tdnb1Iivwa$+n&ctOMrc?CT4u!QN#3~24OxC6=Od)HNUSE57t7$Wf z4R2NSt_=vv!7IJzg(CPk-JNu9sKBQLe&Kj!2vHS0Q^`AZ;?mX(ERWG(_5Ds>zNMdTb)V zSiNTen#E(YKNsj8fo>A$Qh_#bl-0$N`Ij8Y+GVaU*wdezugQWPL%HDl%_H^AQNhQf z_6a`b;B&Sb(m&Ze*j3d$T0a#@Dfc)bIgyQDud86d5@X|h{{j9n84I(keFChO=?wCMovZi~LxW$i`9 z9ObYp0K{hhi_5Z~bGtxF*@ z4RaYS#J&%*Y&QoM7T4bC?-Qt-qatkr>m6wCEYi9@qU=pPHhUdMCU$jzSVbEwc&}U7 zsl_5{}_d2J*O8?Ux*qKoXe(`$jxwZ#w{kA;o!?5>% z68MrEu;jpLa-Hy-|2L)+O*ZA1$`-{dKP{gLOSE5+_DFN-YjihVKwby>|C_%RQQZER z@`?F9`hy#M4hFBFMjzbh0(=m*-A!MR@x{~&_Z3UwC-^d>MV7g-E+Rs_%$2zDvC8KhQR>gl9_6O{CAU5Scba_1%!0;Q<%> zhiyVgj{7(Nfhl2cJid<}eNzAILi(&spPfmcMfTNEeLtk}J?fpQ*~QCVz7YjBv^-r* zpJpL)HbnKEk;biazy2?ruuBH$p7PPBScr6MqWZ4L4F&`JDm9(HQ7Ks88XP_58Jg&c zDf9^zBJXigeS>7kzt*`LIQj?+k!5vM-zRBo>)TSZ;PMo< zYad>6vvaNK!^QMrSqqV~E~;;nG_C;oMQTpi+6)gaD_Wp<4^5&Eu@I?hqWTs|;~VOq zr>0^~5@h<|c={jq7JZb)4wG( zZEH=-+WM-R;F?tlucz)Wq4&!aLnK`r)pt*xVCaK4rzUNJmps}T&SOh^-&A^^Off{_ zsJ{Es z*la)jA8=PSG_@k>uS@8!S%{?TqWWgcprODw{trm&SJgJb#>JXyWWHk_y#vB&^bTZh zi0WH1jdSM>shPE9Z8dFGb?o)$Z9aONOff{d4N-k>rt#u&eQLV@+-^UgNq;U=43WJp zs_)Y@jzZ1i=ilh3H?j~ZH$)dRN@G{OIyI$cMLuB%Yhh;5=0tss=k+t`^)kf}*^iAL z!`RymhP^5^J71KAd+1?|)z_k%Aut8ppIkegUduwHUK3r!sEzk0KS@n3ZlT63M~hFP zahYPsihOjsB43%BH?hcLsH4+qRHhgr_1fq{Ms2+89866u)rPEu8|%MUPo-DO z6hkCl6R?%KcA}#=~XO5!nWvqMrfR3F8?otu++4%qKz&7mFbmb z^hy>YZFBS}Mr-W9m!+n~1(@IiLAy`T7gQbe(}Oa_5Gjw1&SR9u9(LfrQ;xayxO_Uj zT&5Tz^@`|RMs0kdduclAgtdv6O{SO06hkDdjm}|Y#?{W3q#>)TfY;5ih~dBldVqyU zR3Dwqh>WkSFHTJa^HZ=DF4B##Oy|;kdMOK$t2H`{aT#aR{i(SUIwUNcTwBoq>wsl? zNh!UAg~)n*bS7i%F%0^PQnQNQsCS+*&9Z+M-7ixNk-i~X&ghNT>I+lT>&ul{ab4aq&QHy^96Vvj^n!8p0u~|* z`v0G*98d5~x%*A`pWM&7AAx59x4Cb0U+umGPMSImeEx57Z*;G9H@GX^3&GpJ-#x*t zy3MZd;ar#ZT(7!bbUo!d;=0py3wZcH=(^Cg*R|6%2+t9Ych!MMfqAZ}E+2RmaDZQd zZ@{y_+u&Q^Iq)uUANUtI3?2p!z)ph*cp2ygKLf{tr-5qlH82aj4NP)oI<4Sw;0y3M z@H#w;cn16q+~xQ=d!MYoNxsK^oBc-n)%HukOaE#1Vfz;QM*CWO1Ni4(XfL<>?Gx;( z-3*@jKeN4Odlg=-JY_oqKKXC4U28jNyU@1RwiCSZciE1&wb<%xOKtPO55LcrYjfBn z>o?Xf?n$;@VdXsS`DihW?4(Dlfd7;)$)Vo z3(E(V*DWuBr~QX4cUgXJx!&><%YN{&e~M+u(rr1>(gwZ?0+#uf>6SuEp2cNRz;oh1 z&F_HMf)~tBnC}OV`ad(r&6k7sf<5N#;7h;Le4M%2Tx(uzo&#R=C!4d)b~7=3W%>yG z=l{v{tmzTcJ*L}CH-hK&bMj;Iec2>KP=^5!E>8{ZSN%VTjbCKOM z+or%{6GXEZI?wJY7ifk+(;3=h_e>F}OrTPMN(3qv$S+V4L#Nq21p@g5@-j4H_e>IK zqCgV_8ZS_uK;s0;W#}ZkCtIK_fifBDwtL(Hxdd_w|hC1yYi$G?9;9(xx zwB7EJ1(F!bwW@aubeBNCVaQ@tZx!ek4XJ;!siz8bia@&r+9}WuhF-9%!vcjFde*L< zB+#Hh0}MTFSNjC&W#~yeyv)OTsE^y#ZiXJQt6c(x7<$mIb_leIp$F{nfLTlXTf2H9 zLwDQN;|1Cv&~Xg?#;zXA(68+3T7lLubh}+`6{v-wU)a@VhHkOLJ2x#iK#dIj%nmO! zHQ8aiTF=mpc6B*J*W1+^hOV`%RSd=LY6U}A+tpp;o*53x=BQ@b*%(AD~YeYOuTiAN)P z*w{kUDPq|uLm3-oh}uOg8*eBJ3K<)DC_6#O*cb#uxz{rpAU5()wob^{7(^KxgNWKh zEE|m|W1|t#Y7xuECCZwFjEzu~u@Q=>LBz7Lin0|##zrm5>V%AqUzF7f85_wcs}?dg zrcqWYWNdV!EFffToTH45b3|;MBU&u<*oa3N8}W$Ph)1+g=&`YnGB)-R9VKGfEPygL z3m{^%0HWDKkIe@tWAg!`auLgB29!+~GB!t`Y^sp4*#c#3wm?)WV%fZbGB$4@V%KRz zMMAGopaOx|{DOL3P3D2?*3SewtRqRiNke!AyFsAq1-ee4YX!PSptwLWfuaH(66k7y zt`g`c0$nN4L4mFi=yHKB6X<|ImkM-=Ko<+NU!aQwx=^4C1Ug@!^8`9qpmPM;C(zjf zvH2A3cczf-73d6s_6W3Fpol=H3#8Ad&~B488Ma`)K$8TTD9{9khHUO}0_6&nBT%+L zSq$~r+^Rrsfm{rA+1wcd*#)u*WEIH5&?cK(5lCj}1e=?1zXVmc>6gHXeEHx@ z;5*0r@H_rN$E}Vl9lISpa7J5|W2R%G!k!w0GO=G1_qA}2-a`28J|27qerf%q z^>OR3z%Ri*>j?Z#UtwJcztFR+#PTtmg7>)PSC*fGuYz+dgYbL2!E%&kvc&963;;7-#GaJIpAQy;8zSZP{png+kD73C9o zsq%{Q7@T)-P&q^CSJt~fRF=d3g2&yr%Z0K-`U-xvJ`3j`{7gD1oh1!R8>I$mq2!lT z`aOM*zC<6Px6>%y57H`Wku+N>le|){`*!W!OE@?b>MFbgUCF>xnlA9u6ATY+3l100 z87m4G7ov|Nu7w8-6laZ*g#7aoQFxs}a*aU}LzhfY zAIuA!27xC-sCnUYDWu`TUnEIG?csrb(7g)%Z3qS?W&VW1g_=V#hzo8D4TZr`S@9yh zb->Y-?$yk>7Jb!#4v3s>=qeF#1FWPS?shio+Tc}cEhBI?>h?lWd+$i7t$nj|rCuwL zwQ7!xoXho+Y7$%tQw6@+oHgk52iSFK$XPY222QdDdPmTinsX^SA7W~H8S6Wpi$~M8 zz%tm7bK$5KxJnz+{IEIaqi-sfw5elQ6lae6wgkg(8Q2sI7yevNkB0B+=|#JT3vWsg zcJyjzXbcyAZWM+K-_mo!%pbhZ$5fNQkiuzR20n!(}r&G7YXy*0J3 zuw@_=cDNHYLhcRd_!EmX>^?`YNHDwuJW2HhwT*pY$9P_p@W>`u0to))pv6o_c+TPB z&fvgc*x}I4ttG>CQ10Wn1@whb16#um%NVVYd%SLHp6;kwv%(Jh7~#ByAheAYqNY`p zjxE2MJqx87=(h@MrPskcT3T&avpX+Y5OQaVf@w*h_?|J6klV?v2|nnsxkf_Hj}0Qn zX`+~*rH^mZLy3CebaG(G`MyEq*eS9M!Q?tJ)Za-_Pw9?Zh__yUpl`2a^uLfE*d>2yv_B@vZ_9U=UN{*N|Is$P@KsU4_5ol|ff% z!S3PVLFXF=kz*)Hqz#F`8$^z6T*P;!4!glqvv$!5a#6_jZ(cLL0oA2BuEl!r&6lok z(9NAD(WhCxJB;IWTJvazZZ(LCc5u5eEtYi;458d)T^z5g4WgoxopL_Q99*H&Szft9 z`^NTnYJ&(2u6d*c@41c~ULC&w)AjWjNyzmn@3aG&|JtzWVV(tEVO{@B_!e^Q(j>-4J2}F#(jxT3tix8m(3nw z=L;!>4$VI&+5&E|z|}5z2@J!)ZMs*!xPV3|??BoU2 zB_WrEcY8j!@aaJ1*+9f-Ge5w49bUU=Iqy~IMGdbDa~v+70~a}*ykuHmVHdpRMp;px zND1yswQh2u&>HB4Vxb2`$Kn*S38EP2V^q7M))+)ZTlw_Rp*au@_U&NZpenVzs7K_) z^r6rAD~z(D&Ae4bXM`Sp9?!qMx0iKp(}TQz?VX)k$8tV1R^n*a2a4tkxxUHyn69CH zM^Ck|ZI{h6n#6eoy|h8+fjc$rZlXer2j~6zNHRn@@6*fH*3%bi8>ohcbl#)SHE^>B z`XeF7B0Xaeusc4-LcQv(I1A{q`8reU=WuB*79LSns=61}}TNA#I z-gWNNufixyxa-_Anil>?zQ^v-G4* zgL+Gr>n21mvZ50?TlCUvKPJM11K_IGc`VUY*$*1_b0k!Fj^1HVikE=l!du5k!iCT4 zwoSMrA1=HF*P2(53yAwk_g?pMxbJwVFvC@)p?t zW?bRd;d<4e$(AWiVb&_h&8jW0lByfoe$LnlxvH9iN8 zJSoo`V{V>O)a5hK7$=SM#ysgbJ_U_jDc2iACrv4H`6p=PNIBjZ`d~__@ek0*ma+$8 z=wAugv>Xd|o5p7Ov7RNn;R%P~2!LSPOh?$yIp5SxBVApg zq3KN9w+TI3PmyfRk}XTJO_FSw>7p2O=46`z9W;5f#z%fha|$$C@UUc_C7D&p?3K(I z)fz+RO<<#G%f=@DP%rRk;^FY{&`8IyZ!D*eYODp4d8TB>BF&1SKPM}-jW-nO1HDLL z$uvnasgfy2G9llx7`ktQf{ZhqQ~ADLkfiLxkSQ{ZlS~sO6J}ZyL*GrnP-I|uPiN50 zI?^BR+1wxM^r4l3M=6xR+mTWrDacbDL-$RzkW{Z57Ld+R}A!><2C-CF++bgxM0sk}Qj% zFDIZdy8ijQk)pApb)`&y^wA$7%%VRs2HlO5k>Twm1~}2CW))j?`@;nKgG_(OqCX%* zAf|hAGFIcQB!IkXg^DD^mX`bQu>PO#`;xoWNAGvkbN(QzQ;o32t@lBhq3*Bm&C!&cf)ndGJQ9j zzRN;ZjNWv`cqWMgmLtPLY<=bZJCo=;GJPk9zQathHJvG*9>bw6mX_(?J@oG^Wa+o0 zOaD|-`ZcRou4-BbP4TvezRg0Gz9(J!CzH~PgJ0kB(6?lYA*Np*?PlqX8`hpkO21~6 z*rLbRQNLM8-<0W_6X~1Cv^ct%F&R7b<4H{XEYmks`Ud>wfDn@}jdro*#w+AwNy+(I zahblJNnd9nBM7ArgZtqms>JOgGW}aF{TmCBWO;NGBQZA3LrElwO|!hEX-%_C|2mQWm4(Q( zB-+lHjN|>mBqn_auT1~qp?_f^rawBmk)=0YxsN2Jhii{aUvbh`Sjf@_)1`eNDJ^Wo zmFb_I^v^8Bw9BF=vb4r~j{B3+irtwq{ZkhG6AO`HQS=1HV4R|Vo5XNjO$+!~d^v}{ z455p@jEO6w$Fs!7R=h7MakAs)mnPDeWcpGreF;hCMK=Hm-bzDPV81W;UC+I`qeSiI z*+yTKBo}=#m%fO}P^Xi;Ox&-!?{ojey&cy1&vR$G{^@!a*7Kk1>UPz-{IGKWb$A|d zwR0!D&7beg2ETL9IezXq-?0Te%awpPxi>S8WJEJg0Z(uXGji=;*k6Ek`4`%I?JMAY zy&2xtKV*yBPJ?y!i@*D= z=0Wo+^K`S_^q%Q4)Ago7(<0?tc$RR6vO$?7zbD@)cf-?!52fEq7fL5cx%3nI484T5 z(rl;*`&$&lyGXFcT&In)KiwK?u*4^`9|DcA-v{nsgRo<{ZGCBVX+~*&X%L>AE{@?1 zBqUy7NPMCpF}rNGmaHzxDDjrCwpjW)LvAD!TzR%uwuw4p>j&c1znaSZPap=Rze+-~(a zo$W?6Erz#v zz@KkWUkm*3XrZfTb9uKb$AvHu!}~bUUZ!cIZF!$qBMi%b*5I+>cmjE_F6bq;N zTM3!B7UxPx9)?Gd4d8(U+z;ZD5i0E@kMDBr!l-32b`xitI3+1xnxnQ9tIc-w(F8|; zKrO?=?3Xqaz`eR)^+fnz!r0j{b{}W+xMJnCv>=o-WgmOf0@JgIpi{NDxR0B_%* z%%ufTX81R1ux4K726&@|=ke(eS)kNS;bvzu7P>gb?%r(9EX-1LBI;C|iq!^td3m{g zqGO`GEXMBAQdDjg>ZPolJRxU-8~)cT$L`TmRIU*jMl0tTKY4sU{NFXWG=?{2P`PP_ z$~7ca4qs<>jaDzOZoGRuR&Q<$@5q3FjZ;xQ7$Yl-3ng}FleXfdzrDA-+cVLFqS-OL z55s<7=&~yy6?TKs198;xDhj+Yy!T4=_)V>c$8Y^ozc+?=S1C2>K%-CU^TzP5DW%48 z(CC$Vy)nEoN~uu`8e65U-WcBbq|~SZjV;m^Zwzm3QfgF#Mvv6vjo}?jN{uSe=$5*@ zF}xi~sZj|Uo2AX(7~W>2)TjWBE~(2K!yAc|8UfGQ(ECY>BsnZ+7n}U=Y zOF^SU>hQ+!qMuS@321DRHhE)sWlyQG7&O|Yc5jSbwv7*P)nhMw= zj+2h_#@f&^T5))*EX{r!faK)=BHUvDN7`W`o9BX{|TboK9mF zXsnUecwaA|4A5wiTD-A_bQ;q^W3{x}8$%Bw zDLJNrMzhrHjiD=$lp0e(qe*J=#?Zw_N{uO?u}WIyjiHB*lp1BA(I_=~W9VlirA8@e zG)N8J7&^^JsZjzNE2Wj*SWP;OV$fJ2t?ZxPGb^iR7e%x*fHreCW1yl3V36S(rHWpjb+j@Z|vxF8skA@skGD^TbNEG z4>XoYOT4iK=`_ZH#$su)H#R?=MlNU^BOT+79hFWa2Q(H*i@dRU=`^xI<7nwqK%$MeSW3$p}sGxC_bd)zXGo6MTH0DY3ys`3h z8ZOX)f8H4G7*E+xouDyCn&XX4Pp9DkjoH#{Z){pRjSSG3CC&22rl!-dgT_p0rZ+Yv zorVoG%B6B|tSp^|6*Oi@GrY0VbQ%`Wm@ZBC#!Av@m_cKjG|d|;PN!i4jj7U9Z_J-g zLjjE`(iCs3D4m838f8+MH&&QVLjsLbsni=QNT)$TqeLq4#(e2C2xt^b#om}VjfVS2 z(C|xsZ)|cpjUPaxNGkHi^3!Sj8#D@~LT_wRI*so^qd+RKOVy+u+&-9&GG)MteUB(H zWrsxQyKq-o4|}g)mmV_hHMP4=gWdd#U3t!bJ70A^2y6Q@7!f~eK z1n@8K%y>8BVR#O(E92OVc^MA-J8)XyPr$$X3HJH0YX4n$3UIY;yR8kp!<#kF@)ujT zTU)GCtY+~0|D@$M%jK5c;OT!A?2s>jRrz0;-!wmCz6X5zUt~VbyxH6e-Uxc=0rPyx zFBhA~(c8>~KI?u`y4du(`wr8Srt9fe=~iX8Y&Y$aM&v6^9`b|o72I=F(|07IyrDcK zHz>M}axCmgpMVbvq{m1fz8h?64%VzfhbKXF2ctioYIXeq;v4n&DsVuBrxdMk1rKN1 zIbKyQ_05{c7}xWDd8MT5!BJ4~J^_?kf^dXjGaSgq+?cr@pzn|=y3+ERw&d90sJ{!> zZ*i@gu2@lpPh-KS7Cfea2Uo6p65{lO-uQD$*DdY?xR{EUw_;UQO@rpt&2_tk>&!3$ zo^aQ<*1-#>)?jT@L$xcnNQR4Qa)g!{o>Ep-7lbpJT!px{kC&&qI><8&);Ge_lUCPn zq+5w;Iyb?X96);w+I2Y?&$XgZUOqNAECxEE1D8SY>cgci^h>S+e~#*UT5cdY_07}d z^@$|;@{+`_ylTO^iiTQOL%LY4JS$7&rj%)GR>3Qwni_mF7d+0@#?_#kK>uh0M?r8p z2Sj2c^U}4t9&ttK487>sz^mZJ)TpuWpfcCP%0uL4UOU#Ic=|D2>Nz|^Ti2|vZ#DMK z7l>&F339GA&8owl$P$A~c4VtyFsk**)J!f#efh*W_0%Ydp zY<2x4A+^Xe$xl#8!j6;r2g@M5`9qfh8Bi5;&6PWWka6{YA^iCPUcwQa5f-aKij zDx2Ecni^ex-i=eMxpJn+YsQvHGfwjwI5a5;uW8XWBo2rZ$Mit#az;&7gJ3!fVA0vA zSe2q++Ni)D4BfAh8v$F3bsBUgnfOS*)pap0lH=_ylw1+cjcM78keJSOSztKh35nW+GQI1$v;%vwB#jlv>W+I{3eN^*;>Ep7#)WWP z6~rzHSFLdYzSwn9K67EprmD7@Huk{PMG{rjIJ^pGuV!rq zpPizUCMe;BXP!Qw6R#i%D*T$z>Y9^cU?(V6H8t16HDfNX$CzTd#-&IOM%ISj=m?xz z3TFzVp%aoPYq8NcEydK3tf$Q&Q&LneSxuiqQeEY^B8)JWsh7`>DGCQlT8{bYb*kZv zGi{nFNpA{Ghvin9qJi}yXh zG+;$F9E1rAV(`wxm7StqhM9P2ih?95F&iyQVaX<+-24)ILc|w^ATQ+v$3u4=hMA zqDFPJ?2byS0;k+nYdxSctqn94R=KLQ#nF_syeiTfK-1AHR-M+G!ZR{n{%TW<7FIW* z#!9w4twDvNR=S!LSKcv%dI{^&+Dwd^MQLr8FldfRYqQZYb97ppB@UUzX>F#D1ZIkb zX~}do%@FhXyq_>&G()&NDdtN&XU^s3m*RvZ4HdAO1@E^f@ymEZ;y+s1MrUNIQ!?ne=I>i`g@f9s_8(q`jYEH)hM`0sF zllyJ*^q6U0V?b;D4{x5*{Q&s?@#jH`9;cNu>8B4LG%!UZ{-~>mv(mx&=;(d--3d4T ziHiIR>$;2Iya1Et5Lde;`xS3Xl(IXv#`Wyi-!I{Z?j*D#M6pFm;#Z057x)HLR*HzV z)LaZ7|NHm97WiKa{I3NPEpW!^r6y`S`?L}wftX@IsHUKj-GrE}q^uCWI*3wDh&@7! zh!lYDl&D1U!810%@V}xc07!r+W|ZKc6{Ps7f)xIIB!VCC7t#KsRx%xwBA~|qth!3T z2b7A{r^~T4fr!$KU-v{n$EPU!Ar}BBf}*LI6%aX!FmtFwM2SEeNr4FbQ%OE3M94;! zMpSZR9E&eu!9ZOC7E0niiNv8o5wee5OX$T!ijYA0gIX<+0TlOn5Lg2k?o|sBYjVh2 z4iK9rCt4xv5eF!##(Zdj8ab9IWgr3)^#~+VrNa^lXjw?4!bbx&AX6X-Q6d!dAXx;- z6>>15Mtqpg7l4CS4q{F4uR_gJ9*pcoCO2Cv91=7LaEK=q}Y9CsR zs1!2tQ)nh@8RP}IkTXs%(Ru*v-GXoMN6VxN8^+*YAV5@KA$&p+At~gz8@}kVS`h+} zxt1sJVMY=#_-0{G0y%+po`qE*5i2c(@9?LPOo;Ol6JCD<6CssJq-f+!F{s;xdH z0EVgv&lAufPW!P>_Au$3nzYBoEX0 zeR-;L5)cC&^$}7)XrKV(*aISVNNIIWng%YXrtB z+#TU&aX>sVW3!Kktce;xhu5^1I+@`Cy7 zG8jHYiC9%Ks}&Z)6FBZoh4NIYFPtG|1E6~;@fB~}tD1naJwO8fBLQFJN;H&u1|eE$~@D!HUXrmBgAyB7tMc-Xj66Y_o`;5RZh`jnF!h1+|%ORUA+u zShxc@lZ)0CLl1~e_oE#n1t>cIOqxkmaguZ=^CpD4+;L6Q7K+5vvmM`OZ@-VW9baq>Mm%5+S=IWUmiYBSbOPLeG68 zK%~gVW+It1y=1he8ppaJJf>@stu=~nXX`hKk z;shl7NHbUsTLk{fA`#UZfc~qjz~cG#KygfvQzkH|RzHzJ2&Hmhi;@U@AqAv6lSE1i zJyz*lB4L-SKr!(JU`{ffNh13I6K&SCPLD(sVmeGzv>;GGGm-)yfPL^k@Jb}0l4=r% zkB#Pny$;Api9iH=(!fJdt$4LBA}P>RQns%Q=2qWsoR4=$0%{-vJr{KC@4cefl- z;)myzN&C0WvEK5gns--0#fr%3dzE?30cH1dy{8;?_031F@7;g-@(2I9_iRbJ{=q`q zKUbeKrpHe+_U-$MqT~=~tZ8h}-d@!d~TAME+vx((Gf3bf> z{2aATxv>|<-o+bXrYtaD0yVYlA|ElDMS-$=X8#HDi4D^Sj6%9Vp9{2h3pdZ8s z39asS?0e9jvHCEnoUWSgu#?7(gch0uI0m2-7L@uTWM4pusFz2qz7i+7A#fSQRAyhG z5^J0mz%^OPR;wz=5!G4=4YzMMCAVagI%oyxJjD+MJTT!#0{bL2;v#AO*%@L)x(hpt0mmP`wXc?gebu?nFBS$EV0qhIifq-O#=D}n& zKKQv306+rRK~>48fW!*-AcY>7A+S$C3?YN0z`UOp6zsY9+5q&I0EvJQCOKbOByiBW zX|s8w4@Rl~4Brv@!DkQK=M@kenJ{TypggbKL9)pnlS7Ssc24)dw#`y~W#q1fZ!Wv$ z?vJA97C<>~cyQkIaW6ji%zbAZ*)y28S6aRHk^|#wo+U8M;&yUmX3JOgGrSp&c-fIB z-fUl5=sAV%@u)dR0yf{CiUUWMKbd{;@i(^Zt=(gJiLM&lx7HInlKW3WYWJHXm+XIt zDr7>tf8W$C*ZNP9=w9WT{7D53TY#Hb_pF6^S(;M_!(~szYNhJl_Jf&w_QRaL2kH`0 zNZt$egzTnND)U1#mH7$^91X-&oEfOzKN&6~)@z6?N2GuXdmbZa*-0Sp31SAb)ILHk zxn?@ad}Gg);-VEElg~`Z!3NJA)(A9aUA5U{d)+U^yGeE-%n3@Q3`SqYHT$i5;wtsz zk{hK>MDgYAh32vN$!cFc+^_6W&#i^wOv=;(;)_&CbyR65zAZ5QSR*DF{Dctj?nqRd zA50BXqq+~Kl|iyP;G1O&n5Oth#82!#>zk59>#RhY<%gM>klg(Wrj#JDqHZL1yL3eH z?Qena7;B9yerYkFfO0z}6Mja@0zSAK!rrl4okdBdmF8`XSjk2Lvx2p9sw&kH+2&U$ zf&Z*zH!whAN_{x>!IJn)>`4{b_=Wn2DDX<{suWjd$v)_c zSP&odRzd=#;#im%t#!?K4{*K}#-dWUmnc9gWh#o*T1_S5gL{?&xayPrnGP_QWQGa1 zPU*o>D9v_5#%5>=Vv7JRl*R{1RlkRlBO77TCe(+yMWzxMu}Dke&|D_CWGlXhC8c^k z#96Byq&bo;MWnOn5nBON(FfJ_5kJ{eO{<#Z(=|0q8xpAYYszLV~ec1Y#) z@AO96LB~NM{y+cK#&KnrL~Z#qA=Lh11qrOrzNS=-+e7`Z+#DR4;Hugn{{q|2sfo5t zqHQ@^i1PY4TL4C9!UkvjM;uB-;O8Ws#+*x^x`DRjMAeV|Ix)$tE|H zkQ=;OC}ZT(IIe3;N$?X+fR*A_$tKsAlIwk1sGS&H5yxe3Xw)fVt#YMCptVbK9kR)F z#pF7l7GlG!h_i)pbhg1D2a^q=n>d+Hf}fKAAlGG*>(C^N;<$zm3gk{M5Ou3pl&Y86 zVXs8u`hGvTau)wj3eSz>@;XeMY){zyaXBXLSd+5 z71}r%=|5>?V3==8AXm;ISGvfRqrO@>%5a8Cr;ax0lzcqrIa$6zm-s*gC>`|7f?9$fYgh(j0PWF}W0r>y4*f z$$3WUT(Y0+Um9mCIdKyp79IZai};>Wc+FA^i<;Wjw5)2y&k9)ZRZT7^CKq_f1x4h7 zj;`R)(l}e_nSx+<8iMoc$$1`fUJ*GD2}$%)#8n9wD1kjg-Pk7uW}j$=PM( z>=kjg9#p%sCYSYeFiyL6QH8-)9qMWy=^akCv_#IHO3uzEXBUyPQS-PsTRJK)sKHHJ z_{S@LTIo22RB3cUv@KpC!QOZW5=ow%ISYcbeY9`lN%Bb(PQv7YIIda+?<{a(*8h0%Pbr17KonwO zB~G@2JUD4EcW~k$##P2AGKzcy#V$^v*M1Diz~q74f&2lq&7$}OAc03<;LHPdzlqj^ zo4}o=k{nE364n;nZvigJo37cq))=_pR-6n)^xal1Y-X%HH|U{OJCfwurD zs^ht=KE^Gf+e!=J7fbRU(3#0!%e%)Pt>_uw?G?<@s@Uy7+;TxwWF7 zC0XjG5;(lb0v!C7T%Ki~EzdU12GP7YO_!`)OV$_OoS4iuD`OUj=EsR%d~K>qobfl7 zz*Lo7P+R#NwS00pO6}4^@WkjYVhh^V*jCyqYzu5NY(?Np-)%Elzq5X7eb@Ro>mRI7 zS|70f+Ilni)xW}ef%OdQ4(ot5WZht0ZC!3%Vx0@C_`TK~Ylf9tz6MYGZ(06q`Mu>) z%e|J{!QcKN%cbCP|8&cUWviv#vd+?Isj?hxnQ1AuOtg3`7W2Q&pPSz|zh?fU`Dycm z=HHlaHD3pw_%AY_Y2IZ%30D4}0RH$_m;>hd;1QtEoG0D&|KzN~mj4&075=|DSx-L$ z@z3_>?2p@jYrn&OlRaj?%zmDIxBX;$pS{Dr-ri)du^(ffZ7(&u%!)nVo@KY$ezbjQ z`w%=gzHIxQ?P1&9wqMw8uw7-l*mkz&Q>iK6lx4ChKPq3so{=|{mzCcs4=Z;ow<|X(*C~3ZPR_@D=%APXe^bIWRqkhoyJmfpBH#$Y9^}$21wDM|ITeAL6L!JdU!)YbZP% zE>$@yVX+`{tl%>1PJy-xw3#Ez=Ny?%y*foF$=G!~Gnb&p{&x^*ShZ z>7e8s9r*n^DB{Z5g}NkrG6&f@$UL2cr8;mv&Vh*ossl%z4y>nfu$_Y*4njJxe9gh9 zIxrot17(<1wIk^NqdYuS+AeJ$XuQxRrqNxn^4|rY>D9%uC4>@F&b7*I%w}%b6 zP;bcZ(j!BDhd_3YiWUfTlt6QJ)Lz1dVW_L8WEztJ(hC4+ijcVl(sP4Yr!H%^9Oj4) z>L^&USfFDBTEvl(DUgRF`QHLDJBPZ0bPbbr3|aOFv|AuH{NeYo^%Pw;V6ErK@+Cu? zMy6JBH03sq{AP}dSbqkm5qY0+S>AC1jmA#kvT>Jkl*4*Eq|IK$`{)9_#s5AiW-&Mm&u|R>P61TW!;b`$H~suxSza992TbMg_<+`nb$`9Y>bG z38eRpO(Paz4YMe-`2ntH`bePP3Um=i@^b>QDIfBc371K1EPzaULdYH$h+RxD_E8~w zM4(>_bhAJ|6(}aqA%WOz(H{;M-l@s@!$V~qItrFP&5{3OjtX~hWO*Dg;04lt$uu3Wtmfb?SacjZjvu{k*c3B4RP zS-~&H9GS;v|68Dc2=u-{Zwtg44bo<_sTL8t7y^=?<$5yfUMSPe1L!v*mUT3Yy+g=u z6Np^|F;>)4W|t9^ohkHA6KJPECkwrm7tA*FG2+LDUeA1K2)?RJK(9g0p6a&3J_7#*lGtnH%O9MJx4U#tDup?>X9-*u?3 zI@E_9>VppTPKWA9vqq;f*qgS$W9{u7s-;8G(If57?+81qL#^&mDIJP#17!@+5k~D4 z!qkqsRCl+pRWI#O=XI#<9qP0WwV^|;>riVtR9%N!+M(ums97DVqjc4d_NTU8K;i!F z_jWt}bBFrY3Oxz@+99T&)Q{`O^dtHq{h)q8Z`Jqf`}DnfNZ$?p0(R;_m>IB9uhlET z3t*{Ur2F(dJze+e9`FVzbhFN!Ct=ROW6mSaL(YTHgP_&9-?^NvcpV-`yhAw54rV`TKW;x}KVm;*KWIz0d2JqB zyiM55;6w1F^|~Ak1mdXsNYS zS{7JJEkza|_##ZVcr6}FyhT{d7G^$aK5jl{K4Ly(K4?B*ZZ+>W?=$Z;hs?WS7Q~&< zy?K+l(Ohe;1V0L;<|4BXJQk*#y=IR&9{TK$q|%$2a$ z6aqhnyG%P_=EP0l&9K%~Xo^JQr zJ@$CJu$%47cG7knyiXjl9kLy?9e{Zz_uKY?FNzR&iri(}X$#sm*&1!Nwn~_DqSRJo z^V#yWgW3VDRok!a)Anj1@XfeO+o=V$O52ad>=F{@Dba*1+(c(3s!7mEx zN%c6)EO|sdq#jfcsIBULb)ULd4Z%~1UFuFXsBTglVb;k?b%9!{7OB3@t}4oISA$D8 z!EE%ddY2Qq*5yF1aoLfpT{h$@mlav(vLI_+X5>nE3?}2Ra2b()mjPMh(va0I6}jBS zkyS1QS?OZP3h^IunfMpERQ!WnBK}4$7JnfZi9eAG#UIE8;v{mu_#HV<{Dzz>enpmx zUyyUe&&V?I6LPjVfh-lrk+Z~)$P)1ba;EqmSuDOo&Jf=sr;Bfp)5O=vB5@2kReXh< zBECdU7GEF>#ZlxW@j0?Ue1^;ypCWzY2y&wM1UW%`j2tgMLR!RaNVC|BGzoZ|0Of2H zw;&DTW~3%=LaO3MBo}*-ih#!sV9!KIQv4@wK>jPPNB$$=aRh|_Ev`lWC9XmKDXvET zA+AE66uXhXiz|`8i7Sx5ip!C|h|7>ai%XF|iA#_t#Kp+tVi)p9aS`$daUt@1aRKr> zaX#`}aUSv;aW3*}aSrmB*opi~oQ?caoQ3>C>_8qB+mWA(Gm)Q(ZOBi>R^$;8M1CU9 zKz=MvM}8zuLw+c>APRmc}b9rA#vMZO?bBA*v4kk1J}@>x-X z{GX^sJ|mVRpB7cfR#Az3N>m`96w8oLh^5HK#S-LWVlnbju?YEyScu#&79bxM^N|mU zdB_LFT;v0y9C^Q(gS=0aA@3Elk^4j`@*Xh@dABG*-X&%t?-a$zJH!m+?P5CeHZcvk zR}>*{6;qM7h$+aM#bo47q7Zqbn1tLT3Xm-#9~lxpERl@dA%-BgizMWkVlZ->NJMTG3CN)EAkPqk zkf)1*$kW6C0>R zLP1svhOE&4LoU<*MK0CLN3z(L@w0-KrYZvBIoPBBj@SAA?ND9BFpt( zkaP5(k!AW%$l3Y{WT}1}IZOW$S)%`doT-10EY`n6&d|R_PS?LdPSd|e7U{>3Q}wTq zQ}i#9ll3oi(_f&LjXU;h;8(~lr0>YpGd=pReE#)%J+W5r?Q81Vsew0Iwx zCk`P;iT9AX;$38pcn6s+-bQALw~(3QO=O061DP%kB1ekXkt4)w$l>BuLBrivGlUU2}KB3?iyi|3I;#B<0b@hoz%_#ZM+JcCRSPa{2|6*)*eg&ZiJL=F&7 zAp48Qk^RJD$iCuHq+2|Kj2HWneZ<4a-r^x-FYzEUPCS5&755`!#C=GYxECqJKBO-0 zK|00VNQbx!X%}}QZQ>53RopHq#_Jy;$LUx{;SU+O8j`bsk=~zEvsE+j` z(sZmJk*Z_;2(OOyBT{s%ACatM{fHqt){jWiv3|s09qUIV>R3M_LC5+L9v$mP4AQZF z#6TVEM-0%henfvA>qqp{v3^8f9qUK9b*vu|uVej)K04Nq=&fV@h+aC@kBHN;enhN} z^&?_*tRLahv3`Wmv3`WEWBmxHj`brPI@XV{>sUX+repmGt4{S}(Qm{0G3$GgCjC~V zQNIOg&~HX+`b|hxzY)pxJxE1wK{7ogssE?nfc#g#9{G=c9rADeTI65)HON2ptC4@` zS0PX8yOF=^S0aDYuR#8)Uyl4mzYO`aekt-N{SxE}{bJ;CeHZda{UYQK`i02v^$U>S z>E|QA)z3qIqo0fXT0aMQOy7z8N~y*=Ibx$QdJa$7Ix?|-$m#HzzD$Y)!MEe`WD@GW+R*<^YYzJ-o} zZ<#k6tBeB-AHsLTxdxZ^rgphjrp3Z{s;ksRY7+m7-^sVYjI_O#_rU+(awUa*2fO}% z_R0&LP8}q`{YSUXVIOHsl7zGc)=p;IU-cpmDO*AF_Q&Ye?{KWEak zX=;C%3wwP;Ut*(tz@d&&)rY$7uQcl&kb#Y=+N^G z9C<)*CHZRafp^HOsnVo#_=Ml$p6+z_cgxVU&_;?FIf4Is-b9Z5z;XJ1sfLF(ps^a+ z7wlcH>{3R({BQz)Df2?>Y2zcYe^+>_-to3Ob!eZ?OHSNB04DD5hZFaY2?Zc3bi|D8 zsQq?|c(Z#)ZKr8*-}ZmmwZ6G6azxkqw`AmwuJumSqQ33_HRD1}lv>%fzUvT@H&c2S zU>SDpT5nniGhi;Vn-DpKTrM8z^dI$NJYXYWIHWvBobFjb9|-=L+b(Sx@PRP{FGy;^pqO6>DtuwExR)^=o=c{wp$aM7R1_<5LO7 zr#$$%qA@?Tx-Iz;)%J3G^4t4?g>|bpK56{O_>{}|luW-bw2G1t*{S}e6!BuTPW7?I z3kDl6@ZhKHnV27{>nRy8c27oFr+VZ0(1Gd#m+=Cbj0vGyN=9Ut`U7xF7`01%tZ_?H z`~TYf(8`_?@j~}RgmtNhep@??TU^F1G7T7FGW1vb9Z`!aY}#VlwSDR)}4MiZ7H%l{WEe)k=^MH#>sBu;r zQI2GH`mQ;8x;;n#S9f|CnYYqd=rR^kEmcx-BF93triiE7#;A4eDjj3kG1#zUAb!fz z^Yl;!C207_?g@Gd5`?|WXOg3mVi*P@cUuuQFo+wr8^;)S2*VC(nG#w?35x7F|741I z0(;KK7_?pntthm#ZMP9au%2k&ZL#dY9JS}XK{aeKXu_b$osJ7Fp`At!W_mnDJQ8`% zjnUrpwExRLa-7q|(89K&h-l=Gw2ww>tAROH8`?&UXs>I3X$OUNP<96$7g|8+ z=-2I1*GueA5f59T1xRnbICcgGbGfwV258Uq!B4qrT4+8cU}!`Wc(_{vz^ipc3xMgT z4`|Qn+H*1~V?y&NDUp}#hf>4?*0o(*W1O}%vHhQ~9UGe47P;%y6Gp>5C?iJ=9gk56d97%eFCkr$dnNr`L~_os+^!&`-VNrHOG z0Q_ug6=f7PvQ^xNQKPpC_2MDw#RKtEwuq66p}y4lnIU*!wUYD-GQ#r2+UNtx0)L<@dfC|&i5`P|p_#Om$Sd?+ax3x@3_EMaF)}pl&83zn zsO1CkQ?8yGDyF;)jX3Yz*`619-kF2r2fH>_uFg@{spYy_PFb2kiHWS{J5t2$m>3+% z+NG5_lqWsPlWzQ!=_w3Nr}PYtxE|aN>5;jS$(ia8bjui5o=~SLPui3x`6bhaSQ$mw^%J+>aVh`rqrL2xq zRu_c|Xs1IXs(Me@PTQ||UE48NRw?z$YF$|^i$MPVf1zO@)Bn(a(!bS@>L2Ov>aRl& zfT#6G_51ZZ^_%tU^(&zdz&ZLh{Zu`muhm!R70?S{wmw~-q>s~c^bvXr^aF6~F}h9H z;0eNS&L5#Cz^Bd+oNqZ_aX#mK()lp-1-Q+*$9awOGUo-(vz%u@Z-7+d{nlmH`OrsTnzaD>)@NIXTa&GWpqGHlYPG7CzoB>i58&nCh~<6Do0gX? z&sv_aJOq90_gY#kS6eQ%oNw6yJ`guTUx7Nya?4`ygD}%F#WE3k3uIW*V8lg#OD~Jl zVuJnxf0%zVe``Jp<1XGczYaYHo`zW!?l<3QzS(>|jK0`qKF7Sxe5yHMUTa=qu7F+x zv(3}Zlg#7HIpz`O6zDhLHpjq749)b9={M7l&~xBZ(+8%vOs~Lrj3-SGL*Iehz~ACE zrprthn9hPx8JkS&Osh=QrX{Ai;Co>z^dA^)$}|l%C7A}8dYg3UL7*7_gb^Cw8NV=o zYEyne5s|*vX7#AALj5Cad#_=#>V zNHF#_#v1KLgW+Gp@6eavYr|(S%HVCotKi%5Dd{<3<_96Cx_CC;`z+&gNzihwQzK8iMK7k$uZ`fV} zj}?#G9<<$UyA}ErTxGk&cAjm!?KIm4TLbher~;3cbDZl8eV`|U#lYb{=@;#L?Mv+w z?U43{_7aSFcwBo>yIZ>z`WalMU80?*ZP!lIHfRmd)1XRQq|MQawaMB9Z4~r1NYxUx zep(!ie=x!f7$?;e>No1=>WAt(Fb3iU=x^|ddY^iSdXsvcdWC!-rtBQ%T4hufKFn1| zs3oi_}C(I#~5oQxg39|?# zgqeh5iJ`6;gz1E7gd)OJ!W6<}LZL*OYZ9S=kWcUtCK4tP#uLU7#uCO5MicS~qX@Z# z96~lB3n6|d{6_ed@C)H*!cT+~gyV!C2|p0NCwxcvmhcVXYr-+YSA;JKUl5KGJ|}!e z_>^#j@Co5#!bgM;35N+E5Z)&oBD_a3j9j}smvJW62oY`|Tu-=;a4q2)!qtSU z2)hYa60RUzPPmM4Dd7^r#e`jiiwGAIE+CvwIFE2H;T*zF!r6qg2s;Sd31AuJ{=A}k~&#Vu=0=;b+26gcF40gdYh%5WXjTNBEZTjYN|EHQ^ZH zE5etAF9=5opA$YKd`dV%_=NB=;UkGO7as3P`iB&FnD7DNeZnEadxUoh?-1T5yhV7E z@CM-^;dR1mgjWf#5MCy{M0k;Kfbat0dBSsqX9@o!JVSVz&`NlU@Fd|0!sCR;2#*pT zA?znSOn8X!AmIVR{e=4n_Y(FI?jhVwxQlQn;SR#>gxd&v3AYk%A>3>=j$*ee>s0Lm zZL{XrW^3c&n@TTDh3_XHt1qihsJFnVfP?TX;3oZi`1ZdH`u=C?{b8QKUz{I;$FqIT zYn_)s|NhgR0cVYKp0m)I;1Ak;@csQm$6L^s;A!a3e-C_jzs_-)<2=VU z$7blwztXYHG1pNHefhKD8+(7~$FJDGfgb$t!YqT2+wZjBY`@-qCG-+M$G**esy(3H zq1^;C0TkPpK~M1UiaDeyy=T^b6mpTxwgSybL}JKj+V= z%y5R`c5YDn^FsLkpI}(dlWm+=sMUr79)v#a$%cQeU#e$WU$x$9-ELiJEr!1TX3J6d z{=NtL_RqJBuvpCBn_n>BZobgGT3M$(4RaKHZk}l#seNrQ8Lu|GOh236H9Z2~sn3Oe z_;XF;OoQP|e9tfG6k~N^$(%X-nXM98fG3` z-|VmPz9oI8bW0W#MAs7Yz8Pf~)8J_v%!w7KgA97#h*D@%U`XM{sx@o82cztNTK$Hq zHFY)K*Q0E?1b%p%)KI@-OAU>MO7fsR8hS=X|Y2cfWZ|_ z{uPP$$EYcCX+>Q?lp&~FOvwKkUkVNS=t=+1j5sYHHh4_>HkuKBPZTy=Wo4_g| zBCL6cJ4#qw*RZ-kMIh<#h%kTBZ*5`z4bTwQu5G9vQJZvUWLV+^I6oOxov$7ar!k3J zo$4T77x1se119wn>0>CY=(@I!VmYzZtok*ZyFYp#M;T;u&@xVrTJHVtnvA4h4L?Kx@)l))Taux;;0-3mqS9*+9@ z<~o0U!24m8;~I`XdB`7z^INa5@+#ll=&zVe6$FeRJUBDeHPm~L|DWg6(#%rt zv2I1twS~;B#{_x5lCGD+c8592FQ1w3y-~Veida)x?7buEijsxir@Iv#ZEMP$!UFH5 zQFoJ{pYOd+I`E6wO|JJ=dF)4od$)CKR!}^FhU$hj6>|$qy{GlGvV2mh_w;U+-Vt+J z>4seImj7dIw)fO-Yr7mpNx%GGYt_Tu&VzW>nqRfrKdZjX-`ucfgWtQk+i`{_P($n1 z`@L(rNkJQnud*Ka54z^DHDy|4oFNueoc+Hwp+!^^W5C})%6V<>%Gr*I}PC}7;jPV)c;(! zl+)^&uvaLx=c8=5qybDCn!Nvu5>ej91)za=U+i{rlv{m+fV8Q@ z3q;a<&+b!sid9l z;;eRYTDut0E{3)XN1GV@S-be4U9_}|8`{Mc?P6ZLnA0wD+l8%NsBI$gr#9ibv&+4c z*N69y%?%YbP$DVr@TKI-WX9m$BM{geH~7=DpXd+VB^1o5O@Gb96VAe$>1 zn;NR&bnCAflHL{p`|l1JDeDO$)KCX3o+wA3*EMd)O}w{VS$}C$*@-y20Ibcn{?v9m z7-)dY+D4e_1SU07BEtMb&>Jt@uA&{BU+bIUD1uwo=otzr_#;ZFf5?gObglH)`{9xRQ&cA>MGbFG zc86~TZpYzb1lI9ULYtF$+cw(1DFhl;`|IUbh3c;1etC+L;T5u%nZ`2P{r_e5{Kd6> z&Dr%s!4=R&OThDhuU7GZ*8%zR1sQlK0Cx@^SO|ij8>Ylbw@7_G3@o6lHh8d*tH9F( zENjdxeg81%ebDw@nM)rwAr^$OwsITNRK9pnZWG)oXwt_)&;xEsJRsB{gn(lOFoYc| zxDRccOp1qrivzh2*gOo}b#d?rA@?Nr344&969C{;X{QX6rt}I174V(FF*!ciE8DvB zH?1&ucG>faIRqw&C;k(jVFP_W<^cy1TbZxm86S9sz|DqyF>KpuMz0Sx?^AqZEG&O; z&?P2$eC!fP(}|!NoGy4;g-`peu=Gq%40vo(WlSDCunQ8C4rxg8h_r-Vg`hkwAy^eO zhjvRxR~~r7OL~C?Wqcx#fyhOZ!gLXp76&AV8z0Ak2EKBZKCLi&MFnfb86 zd?wQczIK>mkAoWN1r`E4c*w%>c_8mWvo8s%%W@U-V2(Tx)8k8r%?BY&HVQ}+hxJgU;44VLY6u5+89{Ju0fCB$V@G5I!q?v> zjZN47`A>kytvVxk;b2Lv@QZ!+t|2}RN-P*`4LW@ntD>;L5cDu5I860e3tbAVVnLrv z-M`CX@Gx*?!Y&hR$M(`mJ43J~PZIMctVm)BAxsS8J}eDh=mGyB9;|`_OqFjtBoQ_R zdG)dBK@h#c!3|V#5iAF}hr>2xxk2hR7vH^IHpO5N%Gkp^=0q@;2@!Enf{<9qD86{m zhX;_4L7ruZM{W}Q-9Yjghr+SK_Mp*waHZTl2NT#`&ym+`>Q3Var_Jw|PBC6ou) z%2$woW4f57gMXm@VwWqJ&Vog3FRW&}Qdr?OFAoMiJ|0?Cu;2j^lCGvS5sYC+f_;m; zE+|>ZY0%Re+zwguF&|_WcC$-vmW3G0u*-4;&E;7M%BwZs%v`<#1w4Flg{k1Oh_L}s zP^^e4shs&dP=7(jDw%L;=1Y2;U`h&ze*k>6r8g(a!xwhQS(U<`PBf=6una*li%@I2 zFFnXa((LJcTX1wyyyg>7An9y2A3hnp%<%27cX*kP7A00DZLehMVi!N!y9fgrRF|

AVkEH%ZSz6vhXs7Wna2ZSdWb>0 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%0DQm%0w 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 e{tn(f57C&uoO&o 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

q!B8z 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ν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

JR(Bcs-BEpB@8Es#9 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 ORMye~hWLHK()1pDL4>#f literal 0 HcmV?d00001 diff --git a/.vs/slnx.sqlite b/.vs/slnx.sqlite new file mode 100644 index 0000000000000000000000000000000000000000..6d3245cb1374675f205ea02418dac02a3e9b459b GIT binary patch literal 2035712 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\@+-U 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

CAF_op9f7 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 z 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 literal 0 HcmV?d00001 diff --git a/vcnet/libcups3.vcxproj b/vcnet/libcups3.vcxproj index 8bd534e0d..836726501 100644 --- a/vcnet/libcups3.vcxproj +++ b/vcnet/libcups3.vcxproj @@ -131,7 +131,6 @@ xcopy /I/Y "$(TargetPath)" - diff --git a/vcnet/libcups3.vcxproj.filters b/vcnet/libcups3.vcxproj.filters index b57fdf3d9..61ad48295 100644 --- a/vcnet/libcups3.vcxproj.filters +++ b/vcnet/libcups3.vcxproj.filters @@ -123,9 +123,6 @@ Source Files - - Source Files - From 9b79443ed8cd6f056eb8467608a3f7b528d452e9 Mon Sep 17 00:00:00 2001 From: Michael R Sweet Date: Thu, 2 Jun 2022 14:49:06 -0400 Subject: [PATCH 12/15] Update DLL exports file. --- cups/libcups3.def | 33 +++++++++++++++++++++++++-------- 1 file changed, 25 insertions(+), 8 deletions(-) diff --git a/cups/libcups3.def b/cups/libcups3.def index 21c5236f9..312dc887c 100644 --- a/cups/libcups3.def +++ b/cups/libcups3.def @@ -40,6 +40,8 @@ _cupsStrFree _cupsStrRetain _cupsStrScand _cupsStrStatistics +_cups_debug_printf +_cups_debug_puts _cups_debug_set _cups_gettimeofday _cups_hstrerror @@ -66,15 +68,8 @@ _httpTLSStop _httpTLSWrite _httpUpdate _httpWait -_ippFileParse -_ippFileReadToken +_ippCheckOptions _ippFindOption -_ippVarsDeinit -_ippVarsExpand -_ippVarsGet -_ippVarsInit -_ippVarsPasswordCB -_ippVarsSet _pwgMediaNearSize _pwgMediaTable cupsAddDest @@ -379,6 +374,28 @@ ippEnumString ippEnumValue ippErrorString ippErrorValue +ippFileClose +ippFileDelete +ippFileExpandVars +ippFileGetAttribute +ippFileGetAttributes +ippFileGetFilename +ippFileGetLineNumber +ippFileGetVar +ippFileNew +ippFileOpen +ippFileRead +ippFileReadToken +ippFileRestorePosition +ippFileSavePosition +ippFileSetAttributes +ippFileSetGroupTag +ippFileSetVar +ippFileSetVarf +ippFileWriteAttributes +ippFileWriteComment +ippFileWriteToken +ippFileWriteTokenf ippFindAttribute ippFindNextAttribute ippFirstAttribute From 09d78d37b2fbd3f714c04b8a75f14f2d91d33cee Mon Sep 17 00:00:00 2001 From: Michael R Sweet Date: Fri, 3 Jun 2022 15:00:33 -0400 Subject: [PATCH 13/15] Fix WITH-* flags, which broke regular expressions (among other tests) --- tools/ipptool.c | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/tools/ipptool.c b/tools/ipptool.c index 256c67c74..49e68cf9b 100644 --- a/tools/ipptool.c +++ b/tools/ipptool.c @@ -92,8 +92,8 @@ typedef struct ipptool_expect_s /**** Expected attribute info ****/ int repeat_limit; /* Maximum number of times to repeat */ bool repeat_match, /* Repeat test on match */ repeat_no_match, /* Repeat test on no match */ - with_distinct, /* WITH-DISTINCT-VALUES? */ - with_flags; /* WITH flags */ + with_distinct; /* WITH-DISTINCT-VALUES? */ + int with_flags; /* WITH flags */ size_t count; /* Expected count if > 0 */ ipp_tag_t in_group; /* IN-GROUP value */ } ipptool_expect_t; @@ -6580,13 +6580,13 @@ with_flags_string(int flags) /* I - WITH flags */ */ static bool /* O - `true` on match, `false` on non-match */ -with_value(ipptool_test_t *data, /* I - Test data */ - cups_array_t *errors, /* I - Errors array */ - char *value, /* I - Value string */ - int flags, /* I - Flags for match */ - ipp_attribute_t *attr, /* I - Attribute to compare */ - char *matchbuf, /* I - Buffer to hold matching value */ - size_t matchlen) /* I - Length of match buffer */ +with_value(ipptool_test_t *data, /* I - Test data */ + cups_array_t *errors, /* I - Errors array */ + char *value, /* I - Value string */ + int flags, /* I - Flags for match */ + ipp_attribute_t *attr, /* I - Attribute to compare */ + char *matchbuf, /* I - Buffer to hold matching value */ + size_t matchlen) /* I - Length of match buffer */ { size_t i, /* Looping var */ count; /* Number of values */ From f48c023e0ba9fddb0007e101c9dd90595fa0554b Mon Sep 17 00:00:00 2001 From: Michael R Sweet Date: Fri, 3 Jun 2022 16:07:09 -0400 Subject: [PATCH 14/15] Remove out-of-date IPP/2.1, IPP/2.2, and IPP Everywhere tests. Remove old CUPS backend test. Update IPP/1.1 and IPP/2.0 tests. --- examples/ipp-1.1.test | 4027 +++++++------- examples/ipp-2.0.test | 141 +- examples/ipp-2.1.test | 86 - examples/ipp-2.2.test | 76 - examples/ipp-backend.test | 22 - examples/ipp-everywhere.test | 9684 ---------------------------------- 6 files changed, 2051 insertions(+), 11985 deletions(-) delete mode 100644 examples/ipp-2.1.test delete mode 100644 examples/ipp-2.2.test delete mode 100644 examples/ipp-backend.test delete mode 100644 examples/ipp-everywhere.test diff --git a/examples/ipp-1.1.test b/examples/ipp-1.1.test index e406d0ecc..0dd69ad16 100644 --- a/examples/ipp-1.1.test +++ b/examples/ipp-1.1.test @@ -1,6 +1,7 @@ # # IPP/1.1 test suite. # +# Copyright © 2022 by OpenPrinting. # Copyright © 2007-2017 by Apple Inc. # Copyright © 2001-2006 by Easy Software Products. All rights reserved. # @@ -27,16 +28,16 @@ DEFINE IPP_URI_SCHEME "/^ipps?://.+$$/" # # Required by: RFC 8011 section 4.1.1 { - NAME "RFC 8011 section 4.1.1: Bad request-id value 0" - REQUEST-ID 0 - OPERATION Get-Printer-Attributes - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri + NAME "RFC 8011 section 4.1.1: Bad request-id value 0" + REQUEST-ID 0 + OPERATION Get-Printer-Attributes + GROUP operation-attributes-tag + ATTR charset attributes-charset utf-8 + ATTR naturalLanguage attributes-natural-language en + ATTR uri printer-uri $uri - STATUS client-error-bad-request - EXPECT !printer-uri-supported + STATUS client-error-bad-request + EXPECT !printer-uri-supported } @@ -45,55 +46,55 @@ DEFINE IPP_URI_SCHEME "/^ipps?://.+$$/" # # Required by: RFC 8011 section 4.1.4 { - NAME "RFC 8011 section 4.1.4: No Operation Attributes" - REQUEST-ID random - OPERATION Get-Printer-Attributes - GROUP operation-attributes-tag + NAME "RFC 8011 section 4.1.4: No Operation Attributes" + REQUEST-ID random + OPERATION Get-Printer-Attributes + GROUP operation-attributes-tag - STATUS client-error-bad-request - EXPECT !printer-uri-supported + STATUS client-error-bad-request + EXPECT !printer-uri-supported } { - NAME "RFC 8011 section 4.1.4: attributes-charset" - OPERATION Get-Printer-Attributes - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR uri printer-uri $uri + NAME "RFC 8011 section 4.1.4: attributes-charset" + OPERATION Get-Printer-Attributes + GROUP operation-attributes-tag + ATTR charset attributes-charset utf-8 + ATTR uri printer-uri $uri - STATUS client-error-bad-request - EXPECT !printer-uri-supported + STATUS client-error-bad-request + EXPECT !printer-uri-supported } { - NAME "RFC 8011 section 4.1.4: attributes-natural-language" - OPERATION Get-Printer-Attributes - GROUP operation-attributes-tag - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri + NAME "RFC 8011 section 4.1.4: attributes-natural-language" + OPERATION Get-Printer-Attributes + GROUP operation-attributes-tag + ATTR naturalLanguage attributes-natural-language en + ATTR uri printer-uri $uri - STATUS client-error-bad-request - EXPECT !printer-uri-supported + STATUS client-error-bad-request + EXPECT !printer-uri-supported } { - NAME "RFC 8011 section 4.1.4: attributes-natural-language + attributes-charset" - OPERATION Get-Printer-Attributes - GROUP operation-attributes-tag - ATTR naturalLanguage attributes-natural-language en - ATTR charset attributes-charset utf-8 - ATTR uri printer-uri $uri + NAME "RFC 8011 section 4.1.4: attributes-natural-language + attributes-charset" + OPERATION Get-Printer-Attributes + GROUP operation-attributes-tag + ATTR naturalLanguage attributes-natural-language en + ATTR charset attributes-charset utf-8 + ATTR uri printer-uri $uri - STATUS client-error-bad-request - EXPECT !printer-uri-supported + STATUS client-error-bad-request + EXPECT !printer-uri-supported } { - NAME "RFC 8011 section 4.1.4: attributes-charset + attributes-natural-language" - OPERATION Get-Printer-Attributes - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri + NAME "RFC 8011 section 4.1.4: attributes-charset + attributes-natural-language" + OPERATION Get-Printer-Attributes + GROUP operation-attributes-tag + ATTR charset attributes-charset utf-8 + ATTR naturalLanguage attributes-natural-language en + ATTR uri printer-uri $uri - STATUS successful-ok - EXPECT printer-uri-supported OF-TYPE uri WITH-ALL-VALUES "$IPP_URI_SCHEME" + STATUS successful-ok + EXPECT printer-uri-supported OF-TYPE uri WITH-ALL-VALUES "$IPP_URI_SCHEME" } @@ -101,17 +102,17 @@ DEFINE IPP_URI_SCHEME "/^ipps?://.+$$/" # # Required by: RFC 8011 section 4.1.8 { - # The name of the test... - NAME "RFC 8011 section 4.1.8: Unsupported IPP version 0.0" - VERSION 0.0 - OPERATION Get-Printer-Attributes - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri + # The name of the test... + NAME "RFC 8011 section 4.1.8: Unsupported IPP version 0.0" + VERSION 0.0 + OPERATION Get-Printer-Attributes + GROUP operation-attributes-tag + ATTR charset attributes-charset utf-8 + ATTR naturalLanguage attributes-natural-language en + ATTR uri printer-uri $uri - STATUS server-error-version-not-supported - EXPECT !printer-uri-supported + STATUS server-error-version-not-supported + EXPECT !printer-uri-supported } @@ -119,14 +120,14 @@ DEFINE IPP_URI_SCHEME "/^ipps?://.+$$/" # # Required by: RFC 8011 section 4.2 { - NAME "RFC 8011 section 4.2: No printer-uri operation attribute" - OPERATION Get-Printer-Attributes - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en + NAME "RFC 8011 section 4.2: No printer-uri operation attribute" + OPERATION Get-Printer-Attributes + GROUP operation-attributes-tag + ATTR charset attributes-charset utf-8 + ATTR naturalLanguage attributes-natural-language en - STATUS client-error-bad-request - EXPECT !printer-uri-supported + STATUS client-error-bad-request + EXPECT !printer-uri-supported } @@ -134,55 +135,53 @@ DEFINE IPP_URI_SCHEME "/^ipps?://.+$$/" # # Required by: RFC 8011 section 4.2.1 { - NAME "RFC 8011 section 4.2.1: Print-Job Operation" - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR name job-name $filename - ATTR boolean ipp-attribute-fidelity false - ATTR name document-name $filename - ATTR keyword compression none - ATTR mimeMediaType document-format $filetype - FILE $filename - - STATUS successful-ok - STATUS client-error-document-format-not-supported - STATUS server-error-job-canceled - STATUS server-error-busy REPEAT-MATCH REPEAT-LIMIT 30 - - EXPECT job-uri OF-TYPE uri COUNT 1 IN-GROUP job-attributes-tag WITH-VALUE "$IPP_URI_SCHEME" - EXPECT job-id OF-TYPE integer COUNT 1 IN-GROUP job-attributes-tag - WITH-VALUE >0 - EXPECT job-state OF-TYPE unknown|enum COUNT 1 IN-GROUP job-attributes-tag - WITH-VALUE 3,4,5,6,7,8,9 - EXPECT job-state WITH-VALUE 7,8,9 DEFINE-MATCH PRINT_JOB_COMPLETED - EXPECT job-state-reasons OF-TYPE keyword IN-GROUP job-attributes-tag - EXPECT ?job-state-message OF-TYPE text IN-GROUP job-attributes-tag - EXPECT ?number-of-intervening-jobs OF-TYPE integer - IN-GROUP job-attributes-tag WITH-VALUE >-1 + NAME "RFC 8011 section 4.2.1: Print-Job Operation" + OPERATION Print-Job + GROUP operation-attributes-tag + ATTR charset attributes-charset utf-8 + ATTR naturalLanguage attributes-natural-language en + ATTR uri printer-uri $uri + ATTR name requesting-user-name $user + ATTR name job-name $filename + ATTR boolean ipp-attribute-fidelity false + ATTR name document-name $filename + ATTR keyword compression none + ATTR mimeMediaType document-format $filetype + FILE $filename + + STATUS successful-ok + STATUS client-error-document-format-not-supported + STATUS server-error-job-canceled + STATUS server-error-busy REPEAT-MATCH REPEAT-LIMIT 30 + + EXPECT job-uri OF-TYPE uri COUNT 1 IN-GROUP job-attributes-tag WITH-VALUE "$IPP_URI_SCHEME" + EXPECT job-id OF-TYPE integer COUNT 1 IN-GROUP job-attributes-tag WITH-VALUE >0 + EXPECT job-state OF-TYPE unknown|enum COUNT 1 IN-GROUP job-attributes-tag WITH-VALUE 3,4,5,6,7,8,9 + EXPECT job-state WITH-VALUE 7,8,9 DEFINE-MATCH PRINT_JOB_COMPLETED + EXPECT job-state-reasons OF-TYPE keyword IN-GROUP job-attributes-tag + EXPECT ?job-state-message OF-TYPE text IN-GROUP job-attributes-tag + EXPECT ?number-of-intervening-jobs OF-TYPE integer + IN-GROUP job-attributes-tag WITH-VALUE >-1 } # Test Validate-Job operation # # Required by: RFC 8011 section 4.2.3 { - NAME "RFC 8011 section 4.2.3: Validate-Job Operation" - OPERATION Validate-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR name job-name $filename - ATTR boolean ipp-attribute-fidelity false - ATTR name document-name $filename - ATTR keyword compression none - ATTR mimeMediaType document-format $filetype + NAME "RFC 8011 section 4.2.3: Validate-Job Operation" + OPERATION Validate-Job + GROUP operation-attributes-tag + ATTR charset attributes-charset utf-8 + ATTR naturalLanguage attributes-natural-language en + ATTR uri printer-uri $uri + ATTR name requesting-user-name $user + ATTR name job-name $filename + ATTR boolean ipp-attribute-fidelity false + ATTR name document-name $filename + ATTR keyword compression none + ATTR mimeMediaType document-format $filetype - STATUS successful-ok + STATUS successful-ok } @@ -190,143 +189,143 @@ DEFINE IPP_URI_SCHEME "/^ipps?://.+$$/" # # Required by: RFC 8011 section 4.2.5 { - NAME "RFC 8011 section 4.2.5: Get-Printer-Attributes Operation (default)" - OPERATION Get-Printer-Attributes - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format $filetype - - STATUS successful-ok - - # Display some useful information to identify the test - DISPLAY color-supported - DISPLAY compression-supported - DISPLAY document-format-supported - DISPLAY finishings-supported - DISPLAY ipp-versions-supported - DISPLAY job-sheets-supported - DISPLAY media-supported - DISPLAY number-up-supported - DISPLAY operations-supported - DISPLAY pages-per-minute - DISPLAY pages-per-minute-color - DISPLAY print-quality-supported - DISPLAY printer-uri-supported - DISPLAY reference-uri-schemes-supported - DISPLAY sizes-supported - DISPLAY uri-authentication-supported - DISPLAY uri-security-supported - - # Operations - EXPECT operations-supported OF-TYPE enum IN-GROUP printer-attributes-tag WITH-VALUE 0x0002 # Print-Job - EXPECT operations-supported WITH-VALUE 0x0003 DEFINE-MATCH OPTIONAL_PRINT_URI # Print-URI - EXPECT operations-supported WITH-VALUE 0x0004 # Validate-Job - EXPECT operations-supported WITH-VALUE 0x0005 DEFINE-MATCH OPTIONAL_CREATE_JOB # Create-Job - EXPECT operations-supported WITH-VALUE 0x0006 DEFINE-MATCH OPTIONAL_SEND_DOCUMENT # Send-Document - EXPECT operations-supported WITH-VALUE 0x0007 DEFINE-MATCH OPTIONAL_SEND_URI # Send-URI - EXPECT operations-supported WITH-VALUE 0x0008 # Cancel-Job - EXPECT operations-supported WITH-VALUE 0x0009 # Get-Job-Attributes - EXPECT operations-supported WITH-VALUE 0x000a # Get-Jobs - EXPECT operations-supported WITH-VALUE 0x000b # Get-Printer-Attributes - EXPECT operations-supported WITH-VALUE 0x000c DEFINE-MATCH OPTIONAL_HOLD_JOB # Hold-Job - EXPECT operations-supported WITH-VALUE 0x000d DEFINE-MATCH OPTIONAL_RELEASE_JOB # Release-Job - EXPECT operations-supported WITH-VALUE 0x000e DEFINE-MATCH OPTIONAL_RESTART_JOB # Restart-Job - EXPECT operations-supported WITH-VALUE 0x0010 DEFINE-MATCH OPTIONAL_PAUSE_PRINTER # Pause-Printer - EXPECT operations-supported WITH-VALUE 0x0011 DEFINE-MATCH OPTIONAL_RESUME_PRINTER # Resume-Printer - EXPECT operations-supported WITH-VALUE 0x0012 DEFINE-MATCH OPTIONAL_PURGE_JOBS # Purge-Jobs - - # Job template attributes - EXPECT ?copies-default OF-TYPE integer IN-GROUP printer-attributes-tag COUNT 1 WITH-VALUE >0 - EXPECT ?copies-supported OF-TYPE rangeOfInteger IN-GROUP printer-attributes-tag - EXPECT ?finishings-default OF-TYPE enum IN-GROUP printer-attributes-tag - EXPECT ?finishings-supported OF-TYPE enum IN-GROUP printer-attributes-tag WITH-VALUE 3 - EXPECT ?job-hold-until-default OF-TYPE keyword|name IN-GROUP printer-attributes-tag COUNT 1 - EXPECT ?job-hold-until-supported OF-TYPE keyword|name IN-GROUP printer-attributes-tag WITH-VALUE no-hold - EXPECT job-hold-until-default IF-DEFINED OPTIONAL_HOLD_JOB - EXPECT job-hold-until-supported IF-DEFINED OPTIONAL_HOLD_JOB - EXPECT ?job-priority-default OF-TYPE integer IN-GROUP printer-attributes-tag COUNT 1 WITH-VALUE >0,<101 - EXPECT ?job-priority-supported OF-TYPE integer IN-GROUP printer-attributes-tag COUNT 1 WITH-VALUE >0,<101 - EXPECT ?job-sheets-default OF-TYPE keyword|name IN-GROUP printer-attributes-tag - EXPECT ?job-sheets-supported OF-TYPE keyword|name IN-GROUP printer-attributes-tag WITH-VALUE none - EXPECT ?media-default OF-TYPE no-value|keyword|name IN-GROUP printer-attributes-tag COUNT 1 - EXPECT ?media-ready OF-TYPE keyword|name IN-GROUP printer-attributes-tag - EXPECT ?media-supported OF-TYPE keyword|name IN-GROUP printer-attributes-tag - EXPECT ?multiple-document-handling-default OF-TYPE keyword IN-GROUP printer-attributes-tag WITH-VALUE "/^(single-document|separate-documents-uncollated-copies|separate-documents-collated-copies|single-document-new-sheet)$$/" - EXPECT ?multiple-document-handling-supported OF-TYPE keyword IN-GROUP printer-attributes-tag WITH-VALUE "/^(single-document|separate-documents-uncollated-copies|separate-documents-collated-copies|single-document-new-sheet)$$/" - EXPECT ?number-up-default OF-TYPE integer IN-GROUP printer-attributes-tag COUNT 1 WITH-VALUE >0 - EXPECT ?number-up-supported OF-TYPE integer|rangeOfInteger IN-GROUP printer-attributes-tag WITH-VALUE >0 - EXPECT ?number-up-supported WITH-VALUE 1 - EXPECT ?orientation-requested-default OF-TYPE no-value|enum IN-GROUP printer-attributes-tag COUNT 1 WITH-VALUE 3,4,5,6 - EXPECT ?orientation-requested-supported OF-TYPE enum IN-GROUP printer-attributes-tag WITH-VALUE 3,4,5,6 - EXPECT ?pages-ranges-supported OF-TYPE boolean IN-GROUP printer-attributes-tag - EXPECT ?print-quality-default OF-TYPE enum IN-GROUP printer-attributes-tag COUNT 1 WITH-VALUE 3,4,5 - EXPECT ?print-quality-supported OF-TYPE enum IN-GROUP printer-attributes-tag WITH-VALUE 3,4,5 - EXPECT ?printer-resolution-default OF-TYPE resolution IN-GROUP printer-attributes-tag COUNT 1 - EXPECT ?printer-resolution-supported OF-TYPE resolution IN-GROUP printer-attributes-tag - EXPECT ?sides-default OF-TYPE keyword IN-GROUP printer-attributes-tag COUNT 1 WITH-VALUE "/^(one-sided|two-sided-long-edge|two-sided-short-edge)$$/" - EXPECT ?sides-supported OF-TYPE keyword IN-GROUP printer-attributes-tag WITH-VALUE "/^(one-sided|two-sided-long-edge|two-sided-short-edge)$$/" - - # Job template attributes for specific tests... - EXPECT copies-supported WITH-VALUE >1 DEFINE-MATCH OPTIONAL_COPIES - EXPECT document-format-supported WITH-VALUE "application/pdf" DEFINE-MATCH OPTIONAL_PDF - EXPECT document-format-supported WITH-VALUE "application/postscript" DEFINE-MATCH OPTIONAL_POSTSCRIPT - EXPECT document-format-supported WITH-VALUE "image/jpeg" DEFINE-MATCH OPTIONAL_JPEG - EXPECT job-sheets-supported WITH-VALUE "standard" DEFINE-MATCH OPTIONAL_STANDARD_SHEET - EXPECT media-supported WITH-VALUE "a4" DEFINE-VALUE OPTIONAL_A4_MEDIA - EXPECT media-supported WITH-VALUE "iso-a4" DEFINE-VALUE OPTIONAL_A4_MEDIA - EXPECT media-supported WITH-VALUE "iso_a4_210x297mm" DEFINE-VALUE OPTIONAL_A4_MEDIA - EXPECT media-supported WITH-VALUE "letter" DEFINE-VALUE OPTIONAL_LETTER_MEDIA - EXPECT media-supported WITH-VALUE "na-letter" DEFINE-VALUE OPTIONAL_LETTER_MEDIA - EXPECT media-supported WITH-VALUE "na_letter_8.5x11in" DEFINE-VALUE OPTIONAL_LETTER_MEDIA - EXPECT media-supported WITH-VALUE "index-4x6" DEFINE-VALUE OPTIONAL_4X6_MEDIA - EXPECT media-supported WITH-VALUE "na_index-4x6_4x6in" DEFINE-VALUE OPTIONAL_4X6_MEDIA - EXPECT number-up-supported WITH-VALUE 2 DEFINE-MATCH OPTIONAL_2UP - EXPECT print-quality WITH-VALUE 3 DEFINE-MATCH OPTIONAL_DRAFT_QUALITY - EXPECT print-quality WITH-VALUE 4 DEFINE-MATCH OPTIONAL_NORMAL_QUALITY - EXPECT print-quality WITH-VALUE 5 DEFINE-MATCH OPTIONAL_BEST_QUALITY - EXPECT sides-supported WITH-VALUE "two-sided-long-edge" DEFINE-MATCH OPTIONAL_DUPLEX - - # Printer description attributes - EXPECT ?color-supported OF-TYPE boolean IN-GROUP printer-attributes-tag COUNT 1 - EXPECT ?job-impressions-supported OF-TYPE rangeOfInteger IN-GROUP printer-attributes-tag COUNT 1 - EXPECT ?job-k-octets-supported OF-TYPE rangeOfInteger IN-GROUP printer-attributes-tag COUNT 1 - EXPECT ?job-media-sheets-supported OF-TYPE rangeOfInteger IN-GROUP printer-attributes-tag COUNT 1 - EXPECT ?multiple-document-jobs-supported OF-TYPE boolean IN-GROUP printer-attributes-tag COUNT 1 - EXPECT ?multiple-operation-time-out OF-TYPE integer IN-GROUP printer-attributes-tag COUNT 1 WITH-VALUE >0 - EXPECT ?pages-per-minute OF-TYPE integer IN-GROUP printer-attributes-tag COUNT 1 - EXPECT ?pages-per-minute-color OF-TYPE integer IN-GROUP printer-attributes-tag COUNT 1 - EXPECT ?printer-driver-installer OF-TYPE uri IN-GROUP printer-attributes-tag COUNT 1 - EXPECT ?printer-info OF-TYPE text IN-GROUP printer-attributes-tag COUNT 1 WITH-VALUE "/^.{0,127}$$/" - EXPECT ?printer-location OF-TYPE text IN-GROUP printer-attributes-tag COUNT 1 WITH-VALUE "/^.{0,127}$$/" - EXPECT ?printer-make-and-model OF-TYPE text IN-GROUP printer-attributes-tag COUNT 1 WITH-VALUE "/^.{0,127}$$/" - EXPECT ?printer-message-from-operator OF-TYPE text IN-GROUP printer-attributes-tag COUNT 1 WITH-VALUE "/^.{0,127}$$/" - EXPECT ?printer-more-info OF-TYPE uri IN-GROUP printer-attributes-tag COUNT 1 WITH-VALUE "$HTTP_URI_SCHEME" - EXPECT ?printer-more-info-manufacturer OF-TYPE uri IN-GROUP printer-attributes-tag COUNT 1 WITH-VALUE "$HTTP_URI_SCHEME" - EXPECT ?printer-state-message OF-TYPE text IN-GROUP printer-attributes-tag - EXPECT ?reference-uri-schemes-supported OF-TYPE uriScheme IN-GROUP printer-attributes-tag - EXPECT reference-uri-schemes-supported WITH-VALUE "ftp" IF-DEFINED OPTIONAL_PRINT_URI - EXPECT reference-uri-schemes-supported WITH-VALUE "ftp" IF-DEFINED OPTIONAL_SEND_URI IF-NOT-DEFINED OPTIONAL_PRINT_URI - EXPECT charset-configured OF-TYPE charset IN-GROUP printer-attributes-tag COUNT 1 - EXPECT charset-supported OF-TYPE charset IN-GROUP printer-attributes-tag WITH-VALUE utf-8 - EXPECT compression-supported OF-TYPE keyword IN-GROUP printer-attributes-tag WITH-VALUE none - EXPECT document-format-default OF-TYPE mimeMediaType IN-GROUP printer-attributes-tag COUNT 1 - EXPECT document-format-supported OF-TYPE mimeMediaType IN-GROUP printer-attributes-tag - EXPECT generated-natural-language-supported OF-TYPE naturalLanguage IN-GROUP printer-attributes-tag - EXPECT ipp-versions-supported OF-TYPE keyword IN-GROUP printer-attributes-tag WITH-VALUE 1.1 - EXPECT natural-language-configured OF-TYPE naturalLanguage IN-GROUP printer-attributes-tag COUNT 1 - EXPECT pdl-override-supported OF-TYPE keyword IN-GROUP printer-attributes-tag COUNT 1 - EXPECT printer-is-accepting-jobs OF-TYPE boolean IN-GROUP printer-attributes-tag COUNT 1 - EXPECT printer-name OF-TYPE name IN-GROUP printer-attributes-tag COUNT 1 WITH-VALUE "/^.{0,127}$$/" - EXPECT printer-state OF-TYPE enum IN-GROUP printer-attributes-tag COUNT 1 WITH-VALUE 3,4,5 - EXPECT printer-state-reasons OF-TYPE keyword IN-GROUP printer-attributes-tag - EXPECT printer-up-time OF-TYPE integer IN-GROUP printer-attributes-tag COUNT 1 WITH-VALUE >0 - EXPECT printer-uri-supported OF-TYPE uri IN-GROUP printer-attributes-tag SAME-COUNT-AS uri-security-supported WITH-ALL-VALUES "$IPP_URI_SCHEME" - EXPECT queued-job-count OF-TYPE integer IN-GROUP printer-attributes-tag COUNT 1 - EXPECT uri-authentication-supported OF-TYPE keyword IN-GROUP printer-attributes-tag - EXPECT uri-security-supported OF-TYPE keyword IN-GROUP printer-attributes-tag SAME-COUNT-AS uri-authentication-supported + NAME "RFC 8011 section 4.2.5: Get-Printer-Attributes Operation (default)" + OPERATION Get-Printer-Attributes + GROUP operation-attributes-tag + ATTR charset attributes-charset utf-8 + ATTR naturalLanguage attributes-natural-language en + ATTR uri printer-uri $uri + ATTR name requesting-user-name $user + ATTR mimeMediaType document-format $filetype + + STATUS successful-ok + + # Display some useful information to identify the test + DISPLAY color-supported + DISPLAY compression-supported + DISPLAY document-format-supported + DISPLAY finishings-supported + DISPLAY ipp-versions-supported + DISPLAY job-sheets-supported + DISPLAY media-supported + DISPLAY number-up-supported + DISPLAY operations-supported + DISPLAY pages-per-minute + DISPLAY pages-per-minute-color + DISPLAY print-quality-supported + DISPLAY printer-uri-supported + DISPLAY reference-uri-schemes-supported + DISPLAY sizes-supported + DISPLAY uri-authentication-supported + DISPLAY uri-security-supported + + # Operations + EXPECT operations-supported OF-TYPE enum IN-GROUP printer-attributes-tag WITH-VALUE 0x0002 # Print-Job + EXPECT operations-supported WITH-VALUE 0x0003 DEFINE-MATCH OPTIONAL_PRINT_URI # Print-URI + EXPECT operations-supported WITH-VALUE 0x0004 # Validate-Job + EXPECT operations-supported WITH-VALUE 0x0005 DEFINE-MATCH OPTIONAL_CREATE_JOB # Create-Job + EXPECT operations-supported WITH-VALUE 0x0006 DEFINE-MATCH OPTIONAL_SEND_DOCUMENT # Send-Document + EXPECT operations-supported WITH-VALUE 0x0007 DEFINE-MATCH OPTIONAL_SEND_URI # Send-URI + EXPECT operations-supported WITH-VALUE 0x0008 # Cancel-Job + EXPECT operations-supported WITH-VALUE 0x0009 # Get-Job-Attributes + EXPECT operations-supported WITH-VALUE 0x000a # Get-Jobs + EXPECT operations-supported WITH-VALUE 0x000b # Get-Printer-Attributes + EXPECT operations-supported WITH-VALUE 0x000c DEFINE-MATCH OPTIONAL_HOLD_JOB # Hold-Job + EXPECT operations-supported WITH-VALUE 0x000d DEFINE-MATCH OPTIONAL_RELEASE_JOB # Release-Job + EXPECT operations-supported WITH-VALUE 0x000e DEFINE-MATCH OPTIONAL_RESTART_JOB # Restart-Job + EXPECT operations-supported WITH-VALUE 0x0010 DEFINE-MATCH OPTIONAL_PAUSE_PRINTER # Pause-Printer + EXPECT operations-supported WITH-VALUE 0x0011 DEFINE-MATCH OPTIONAL_RESUME_PRINTER # Resume-Printer + EXPECT operations-supported WITH-VALUE 0x0012 DEFINE-MATCH OPTIONAL_PURGE_JOBS # Purge-Jobs + + # Job template attributes + EXPECT ?copies-default OF-TYPE integer IN-GROUP printer-attributes-tag COUNT 1 WITH-VALUE >0 + EXPECT ?copies-supported OF-TYPE rangeOfInteger IN-GROUP printer-attributes-tag + EXPECT ?finishings-default OF-TYPE enum IN-GROUP printer-attributes-tag + EXPECT ?finishings-supported OF-TYPE enum IN-GROUP printer-attributes-tag WITH-VALUE 3 + EXPECT ?job-hold-until-default OF-TYPE keyword|name IN-GROUP printer-attributes-tag COUNT 1 + EXPECT ?job-hold-until-supported OF-TYPE keyword|name IN-GROUP printer-attributes-tag WITH-VALUE no-hold + EXPECT job-hold-until-default IF-DEFINED OPTIONAL_HOLD_JOB + EXPECT job-hold-until-supported IF-DEFINED OPTIONAL_HOLD_JOB + EXPECT ?job-priority-default OF-TYPE integer IN-GROUP printer-attributes-tag COUNT 1 WITH-VALUE >0,<101 + EXPECT ?job-priority-supported OF-TYPE integer IN-GROUP printer-attributes-tag COUNT 1 WITH-VALUE >0,<101 + EXPECT ?job-sheets-default OF-TYPE keyword|name IN-GROUP printer-attributes-tag + EXPECT ?job-sheets-supported OF-TYPE keyword|name IN-GROUP printer-attributes-tag WITH-VALUE none + EXPECT ?media-default OF-TYPE no-value|keyword|name IN-GROUP printer-attributes-tag COUNT 1 + EXPECT ?media-ready OF-TYPE keyword|name IN-GROUP printer-attributes-tag + EXPECT ?media-supported OF-TYPE keyword|name IN-GROUP printer-attributes-tag + EXPECT ?multiple-document-handling-default OF-TYPE keyword IN-GROUP printer-attributes-tag WITH-VALUE "/^(single-document|separate-documents-uncollated-copies|separate-documents-collated-copies|single-document-new-sheet)$$/" + EXPECT ?multiple-document-handling-supported OF-TYPE keyword IN-GROUP printer-attributes-tag WITH-VALUE "/^(single-document|separate-documents-uncollated-copies|separate-documents-collated-copies|single-document-new-sheet)$$/" + EXPECT ?number-up-default OF-TYPE integer IN-GROUP printer-attributes-tag COUNT 1 WITH-VALUE >0 + EXPECT ?number-up-supported OF-TYPE integer|rangeOfInteger IN-GROUP printer-attributes-tag WITH-VALUE >0 + EXPECT ?number-up-supported WITH-VALUE 1 + EXPECT ?orientation-requested-default OF-TYPE no-value|enum IN-GROUP printer-attributes-tag COUNT 1 WITH-VALUE 3,4,5,6 + EXPECT ?orientation-requested-supported OF-TYPE enum IN-GROUP printer-attributes-tag WITH-VALUE 3,4,5,6 + EXPECT ?pages-ranges-supported OF-TYPE boolean IN-GROUP printer-attributes-tag + EXPECT ?print-quality-default OF-TYPE enum IN-GROUP printer-attributes-tag COUNT 1 WITH-VALUE 3,4,5 + EXPECT ?print-quality-supported OF-TYPE enum IN-GROUP printer-attributes-tag WITH-VALUE 3,4,5 + EXPECT ?printer-resolution-default OF-TYPE resolution IN-GROUP printer-attributes-tag COUNT 1 + EXPECT ?printer-resolution-supported OF-TYPE resolution IN-GROUP printer-attributes-tag + EXPECT ?sides-default OF-TYPE keyword IN-GROUP printer-attributes-tag COUNT 1 WITH-VALUE "/^(one-sided|two-sided-long-edge|two-sided-short-edge)$$/" + EXPECT ?sides-supported OF-TYPE keyword IN-GROUP printer-attributes-tag WITH-VALUE "/^(one-sided|two-sided-long-edge|two-sided-short-edge)$$/" + + # Job template attributes for specific tests... + EXPECT copies-supported WITH-VALUE >1 DEFINE-MATCH OPTIONAL_COPIES + EXPECT document-format-supported WITH-VALUE "application/pdf" DEFINE-MATCH OPTIONAL_PDF + EXPECT document-format-supported WITH-VALUE "application/postscript" DEFINE-MATCH OPTIONAL_POSTSCRIPT + EXPECT document-format-supported WITH-VALUE "image/jpeg" DEFINE-MATCH OPTIONAL_JPEG + EXPECT job-sheets-supported WITH-VALUE "standard" DEFINE-MATCH OPTIONAL_STANDARD_SHEET + EXPECT media-supported WITH-VALUE "a4" DEFINE-VALUE OPTIONAL_A4_MEDIA + EXPECT media-supported WITH-VALUE "iso-a4" DEFINE-VALUE OPTIONAL_A4_MEDIA + EXPECT media-supported WITH-VALUE "iso_a4_210x297mm" DEFINE-VALUE OPTIONAL_A4_MEDIA + EXPECT media-supported WITH-VALUE "letter" DEFINE-VALUE OPTIONAL_LETTER_MEDIA + EXPECT media-supported WITH-VALUE "na-letter" DEFINE-VALUE OPTIONAL_LETTER_MEDIA + EXPECT media-supported WITH-VALUE "na_letter_8.5x11in" DEFINE-VALUE OPTIONAL_LETTER_MEDIA + EXPECT media-supported WITH-VALUE "index-4x6" DEFINE-VALUE OPTIONAL_4X6_MEDIA + EXPECT media-supported WITH-VALUE "na_index-4x6_4x6in" DEFINE-VALUE OPTIONAL_4X6_MEDIA + EXPECT number-up-supported WITH-VALUE 2 DEFINE-MATCH OPTIONAL_2UP + EXPECT print-quality WITH-VALUE 3 DEFINE-MATCH OPTIONAL_DRAFT_QUALITY + EXPECT print-quality WITH-VALUE 4 DEFINE-MATCH OPTIONAL_NORMAL_QUALITY + EXPECT print-quality WITH-VALUE 5 DEFINE-MATCH OPTIONAL_BEST_QUALITY + EXPECT sides-supported WITH-VALUE "two-sided-long-edge" DEFINE-MATCH OPTIONAL_DUPLEX + + # Printer description attributes + EXPECT ?color-supported OF-TYPE boolean IN-GROUP printer-attributes-tag COUNT 1 + EXPECT ?job-impressions-supported OF-TYPE rangeOfInteger IN-GROUP printer-attributes-tag COUNT 1 + EXPECT ?job-k-octets-supported OF-TYPE rangeOfInteger IN-GROUP printer-attributes-tag COUNT 1 + EXPECT ?job-media-sheets-supported OF-TYPE rangeOfInteger IN-GROUP printer-attributes-tag COUNT 1 + EXPECT ?multiple-document-jobs-supported OF-TYPE boolean IN-GROUP printer-attributes-tag COUNT 1 + EXPECT ?multiple-operation-time-out OF-TYPE integer IN-GROUP printer-attributes-tag COUNT 1 WITH-VALUE >0 + EXPECT ?pages-per-minute OF-TYPE integer IN-GROUP printer-attributes-tag COUNT 1 + EXPECT ?pages-per-minute-color OF-TYPE integer IN-GROUP printer-attributes-tag COUNT 1 + EXPECT ?printer-driver-installer OF-TYPE uri IN-GROUP printer-attributes-tag COUNT 1 + EXPECT ?printer-info OF-TYPE text(127) IN-GROUP printer-attributes-tag COUNT 1 + EXPECT ?printer-location OF-TYPE text(127) IN-GROUP printer-attributes-tag COUNT 1 + EXPECT ?printer-make-and-model OF-TYPE text(127) IN-GROUP printer-attributes-tag COUNT 1 + EXPECT ?printer-message-from-operator OF-TYPE text(127) IN-GROUP printer-attributes-tag COUNT 1 + EXPECT ?printer-more-info OF-TYPE uri IN-GROUP printer-attributes-tag COUNT 1 WITH-VALUE "$HTTP_URI_SCHEME" + EXPECT ?printer-more-info-manufacturer OF-TYPE uri IN-GROUP printer-attributes-tag COUNT 1 WITH-VALUE "$HTTP_URI_SCHEME" + EXPECT ?printer-state-message OF-TYPE text IN-GROUP printer-attributes-tag + EXPECT ?reference-uri-schemes-supported OF-TYPE uriScheme IN-GROUP printer-attributes-tag + EXPECT reference-uri-schemes-supported WITH-VALUE "ftp" IF-DEFINED OPTIONAL_PRINT_URI + EXPECT reference-uri-schemes-supported WITH-VALUE "ftp" IF-DEFINED OPTIONAL_SEND_URI IF-NOT-DEFINED OPTIONAL_PRINT_URI + EXPECT charset-configured OF-TYPE charset IN-GROUP printer-attributes-tag COUNT 1 + EXPECT charset-supported OF-TYPE charset IN-GROUP printer-attributes-tag WITH-VALUE utf-8 + EXPECT compression-supported OF-TYPE keyword IN-GROUP printer-attributes-tag WITH-VALUE none + EXPECT document-format-default OF-TYPE mimeMediaType IN-GROUP printer-attributes-tag COUNT 1 + EXPECT document-format-supported OF-TYPE mimeMediaType IN-GROUP printer-attributes-tag + EXPECT generated-natural-language-supported OF-TYPE naturalLanguage IN-GROUP printer-attributes-tag + EXPECT ipp-versions-supported OF-TYPE keyword IN-GROUP printer-attributes-tag WITH-VALUE 1.1 + EXPECT natural-language-configured OF-TYPE naturalLanguage IN-GROUP printer-attributes-tag COUNT 1 + EXPECT pdl-override-supported OF-TYPE keyword IN-GROUP printer-attributes-tag COUNT 1 + EXPECT printer-is-accepting-jobs OF-TYPE boolean IN-GROUP printer-attributes-tag COUNT 1 + EXPECT printer-name OF-TYPE name(127) IN-GROUP printer-attributes-tag COUNT 1 + EXPECT printer-state OF-TYPE enum IN-GROUP printer-attributes-tag COUNT 1 WITH-VALUE 3,4,5 + EXPECT printer-state-reasons OF-TYPE keyword IN-GROUP printer-attributes-tag + EXPECT printer-up-time OF-TYPE integer IN-GROUP printer-attributes-tag COUNT 1 WITH-VALUE >0 + EXPECT printer-uri-supported OF-TYPE uri IN-GROUP printer-attributes-tag SAME-COUNT-AS uri-security-supported WITH-ALL-VALUES "$IPP_URI_SCHEME" + EXPECT queued-job-count OF-TYPE integer IN-GROUP printer-attributes-tag COUNT 1 + EXPECT uri-authentication-supported OF-TYPE keyword IN-GROUP printer-attributes-tag + EXPECT uri-security-supported OF-TYPE keyword IN-GROUP printer-attributes-tag SAME-COUNT-AS uri-authentication-supported } @@ -334,20 +333,20 @@ DEFINE IPP_URI_SCHEME "/^ipps?://.+$$/" # # Required by: RFC 8011 section 4.2.5 { - NAME "RFC 8011 section 4.2.5: Get-Printer-Attributes Operation (requested-attributes)" - OPERATION Get-Printer-Attributes - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format $filetype - ATTR keyword requested-attributes printer-uri-supported + NAME "RFC 8011 section 4.2.5: Get-Printer-Attributes Operation (requested-attributes)" + OPERATION Get-Printer-Attributes + GROUP operation-attributes-tag + ATTR charset attributes-charset utf-8 + ATTR naturalLanguage attributes-natural-language en + ATTR uri printer-uri $uri + ATTR name requesting-user-name $user + ATTR mimeMediaType document-format $filetype + ATTR keyword requested-attributes printer-uri-supported - STATUS successful-ok + STATUS successful-ok - EXPECT printer-uri-supported OF-TYPE uri IN-GROUP printer-attributes-tag WITH-ALL-VALUES "$IPP_URI_SCHEME" - EXPECT !printer-name + EXPECT printer-uri-supported OF-TYPE uri IN-GROUP printer-attributes-tag WITH-ALL-VALUES "$IPP_URI_SCHEME" + EXPECT !printer-name } @@ -355,56 +354,56 @@ DEFINE IPP_URI_SCHEME "/^ipps?://.+$$/" # # Required by: RFC 8011 section 4.2.6 { - NAME "RFC 8011 section 4.2.6: Get-Jobs Operation (default)" - OPERATION Get-Jobs - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - - STATUS successful-ok - EXPECT ?job-id OF-TYPE integer IN-GROUP job-attributes-tag COUNT 1 WITH-VALUE >0 - EXPECT ?job-uri OF-TYPE uri IN-GROUP job-attributes-tag COUNT 1 WITH-VALUE "$IPP_URI_SCHEME" - EXPECT !job-printer-uri - EXPECT !job-more-info - EXPECT !job-name - EXPECT !job-originating-user-name - EXPECT !job-state - EXPECT !job-state-reasons - EXPECT !job-state-message - EXPECT !job-detailed-status-messages - EXPECT !number-of-documents - EXPECT !output-device-assigned - EXPECT !time-at-creation - EXPECT !time-at-processing - EXPECT !time-at-completed - EXPECT !job-printer-up-time - EXPECT !date-time-at-creation - EXPECT !date-time-at-processing - EXPECT !date-time-at-completed - EXPECT !number-of-intervening-jobs - EXPECT !job-message-from-operator - EXPECT !job-k-octets - EXPECT !job-impressions - EXPECT !job-media-sheets - EXPECT !job-k-octets-processed - EXPECT !job-impressions-completed - EXPECT !job-media-sheets-completed - - EXPECT !copies - EXPECT !finishings - EXPECT !job-hold-until - EXPECT !job-priority - EXPECT !job-sheets - EXPECT !media - EXPECT !multiple-document-handling - EXPECT !number-up - EXPECT !orientation-requested - EXPECT !pages-ranges - EXPECT !print-quality - EXPECT !printer-resolution - EXPECT !sides + NAME "RFC 8011 section 4.2.6: Get-Jobs Operation (default)" + OPERATION Get-Jobs + GROUP operation-attributes-tag + ATTR charset attributes-charset utf-8 + ATTR naturalLanguage attributes-natural-language en + ATTR uri printer-uri $uri + ATTR name requesting-user-name $user + + STATUS successful-ok + EXPECT ?job-id OF-TYPE integer IN-GROUP job-attributes-tag COUNT 1 WITH-VALUE >0 + EXPECT ?job-uri OF-TYPE uri IN-GROUP job-attributes-tag COUNT 1 WITH-VALUE "$IPP_URI_SCHEME" + EXPECT !job-printer-uri + EXPECT !job-more-info + EXPECT !job-name + EXPECT !job-originating-user-name + EXPECT !job-state + EXPECT !job-state-reasons + EXPECT !job-state-message + EXPECT !job-detailed-status-messages + EXPECT !number-of-documents + EXPECT !output-device-assigned + EXPECT !time-at-creation + EXPECT !time-at-processing + EXPECT !time-at-completed + EXPECT !job-printer-up-time + EXPECT !date-time-at-creation + EXPECT !date-time-at-processing + EXPECT !date-time-at-completed + EXPECT !number-of-intervening-jobs + EXPECT !job-message-from-operator + EXPECT !job-k-octets + EXPECT !job-impressions + EXPECT !job-media-sheets + EXPECT !job-k-octets-processed + EXPECT !job-impressions-completed + EXPECT !job-media-sheets-completed + + EXPECT !copies + EXPECT !finishings + EXPECT !job-hold-until + EXPECT !job-priority + EXPECT !job-sheets + EXPECT !media + EXPECT !multiple-document-handling + EXPECT !number-up + EXPECT !orientation-requested + EXPECT !pages-ranges + EXPECT !print-quality + EXPECT !printer-resolution + EXPECT !sides } @@ -412,59 +411,59 @@ DEFINE IPP_URI_SCHEME "/^ipps?://.+$$/" # # Required by: RFC 8011 section 4.2.6 { - SKIP-IF-DEFINED PRINT_JOB_COMPLETED - - NAME "RFC 8011 section 4.2.6: Get-Jobs Operation (requested-attributes)" - OPERATION Get-Jobs - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR keyword requested-attributes all - - STATUS successful-ok - EXPECT ?job-id OF-TYPE integer IN-GROUP job-attributes-tag COUNT 1 WITH-VALUE >0 - EXPECT ?job-uri OF-TYPE uri IN-GROUP job-attributes-tag COUNT 1 WITH-VALUE "$IPP_URI_SCHEME" - EXPECT ?job-printer-uri OF-TYPE uri IN-GROUP job-attributes-tag COUNT 1 WITH-VALUE "$IPP_URI_SCHEME" - EXPECT ?job-more-info OF-TYPE uri IN-GROUP job-attributes-tag COUNT 1 WITH-VALUE "$HTTP_URI_SCHEME" - EXPECT ?job-name OF-TYPE name IN-GROUP job-attributes-tag COUNT 1 - EXPECT ?job-originating-user-name OF-TYPE name IN-GROUP job-attributes-tag COUNT 1 - EXPECT ?job-state OF-TYPE unknown|enum IN-GROUP job-attributes-tag COUNT 1 WITH-VALUE >2,<10 - EXPECT ?job-state-reasons OF-TYPE keyword IN-GROUP job-attributes-tag - EXPECT ?job-state-message OF-TYPE text IN-GROUP job-attributes-tag COUNT 1 - EXPECT ?job-detailed-status-messages OF-TYPE text IN-GROUP job-attributes-tag - EXPECT ?number-of-documents OF-TYPE integer IN-GROUP job-attributes-tag COUNT 1 - EXPECT ?output-device-assigned OF-TYPE name IN-GROUP job-attributes-tag COUNT 1 - EXPECT ?time-at-creation OF-TYPE integer IN-GROUP job-attributes-tag COUNT 1 WITH-VALUE >-1 - EXPECT ?time-at-processing OF-TYPE no-value|integer IN-GROUP job-attributes-tag COUNT 1 WITH-VALUE >-1 - EXPECT ?time-at-completed OF-TYPE no-value|integer IN-GROUP job-attributes-tag COUNT 1 WITH-VALUE >-1 - EXPECT ?job-printer-up-time OF-TYPE no-value|integer IN-GROUP job-attributes-tag COUNT 1 - EXPECT ?date-time-at-creation OF-TYPE no-value|dateTime IN-GROUP job-attributes-tag COUNT 1 - EXPECT ?date-time-at-processing OF-TYPE no-value|dateTime IN-GROUP job-attributes-tag COUNT 1 - EXPECT ?date-time-at-completed OF-TYPE no-value|dateTime IN-GROUP job-attributes-tag COUNT 1 - EXPECT ?number-of-intervening-jobs OF-TYPE integer IN-GROUP job-attributes-tag COUNT 1 - EXPECT ?job-message-from-operator OF-TYPE text IN-GROUP job-attributes-tag COUNT 1 - EXPECT ?job-k-octets OF-TYPE integer|no-value IN-GROUP job-attributes-tag COUNT 1 - EXPECT ?job-impressions OF-TYPE integer|no-value IN-GROUP job-attributes-tag COUNT 1 - EXPECT ?job-media-sheets OF-TYPE integer|no-value IN-GROUP job-attributes-tag COUNT 1 - EXPECT ?job-k-octets-processed OF-TYPE integer|no-value IN-GROUP job-attributes-tag COUNT 1 - EXPECT ?job-impressions-completed OF-TYPE integer|no-value IN-GROUP job-attributes-tag COUNT 1 - EXPECT ?job-media-sheets-completed OF-TYPE integer|no-value IN-GROUP job-attributes-tag COUNT 1 - - EXPECT ?copies OF-TYPE integer IN-GROUP job-attributes-tag COUNT 1 WITH-VALUE >0 - EXPECT ?finishings OF-TYPE enum IN-GROUP job-attributes-tag - EXPECT ?job-hold-until OF-TYPE keyword|name IN-GROUP job-attributes-tag COUNT 1 - EXPECT ?job-priority OF-TYPE integer IN-GROUP job-attributes-tag COUNT 1 WITH-VALUE >0,<101 - EXPECT ?job-sheets OF-TYPE keyword|name IN-GROUP job-attributes-tag - EXPECT ?media OF-TYPE keyword|name IN-GROUP job-attributes-tag COUNT 1 - EXPECT ?multiple-document-handling OF-TYPE keyword IN-GROUP job-attributes-tag WITH-VALUE "/^(single-document|separate-documents-uncollated-copies|separate-documents-collated-copies|single-document-new-sheet)$$/" - EXPECT ?number-up OF-TYPE integer IN-GROUP job-attributes-tag COUNT 1 WITH-VALUE >0 - EXPECT ?orientation-requested OF-TYPE enum IN-GROUP job-attributes-tag COUNT 1 WITH-VALUE 3,4,5,6 - EXPECT ?pages-ranges OF-TYPE rangeOfInteger IN-GROUP job-attributes-tag - EXPECT ?print-quality OF-TYPE enum IN-GROUP job-attributes-tag COUNT 1 WITH-VALUE 3,4,5 - EXPECT ?printer-resolution OF-TYPE resolution IN-GROUP job-attributes-tag COUNT 1 - EXPECT ?sides OF-TYPE keyword IN-GROUP job-attributes-tag COUNT 1 WITH-VALUE "/^(one-sided|two-sided-long-edge|two-sided-short-edge)$$/" + SKIP-IF-DEFINED PRINT_JOB_COMPLETED + + NAME "RFC 8011 section 4.2.6: Get-Jobs Operation (requested-attributes)" + OPERATION Get-Jobs + GROUP operation-attributes-tag + ATTR charset attributes-charset utf-8 + ATTR naturalLanguage attributes-natural-language en + ATTR uri printer-uri $uri + ATTR name requesting-user-name $user + ATTR keyword requested-attributes all + + STATUS successful-ok + EXPECT ?job-id OF-TYPE integer IN-GROUP job-attributes-tag COUNT 1 WITH-VALUE >0 + EXPECT ?job-uri OF-TYPE uri IN-GROUP job-attributes-tag COUNT 1 WITH-VALUE "$IPP_URI_SCHEME" + EXPECT ?job-printer-uri OF-TYPE uri IN-GROUP job-attributes-tag COUNT 1 WITH-VALUE "$IPP_URI_SCHEME" + EXPECT ?job-more-info OF-TYPE uri IN-GROUP job-attributes-tag COUNT 1 WITH-VALUE "$HTTP_URI_SCHEME" + EXPECT ?job-name OF-TYPE name IN-GROUP job-attributes-tag COUNT 1 + EXPECT ?job-originating-user-name OF-TYPE name IN-GROUP job-attributes-tag COUNT 1 + EXPECT ?job-state OF-TYPE unknown|enum IN-GROUP job-attributes-tag COUNT 1 WITH-VALUE >2,<10 + EXPECT ?job-state-reasons OF-TYPE keyword IN-GROUP job-attributes-tag + EXPECT ?job-state-message OF-TYPE text IN-GROUP job-attributes-tag COUNT 1 + EXPECT ?job-detailed-status-messages OF-TYPE text IN-GROUP job-attributes-tag + EXPECT ?number-of-documents OF-TYPE integer IN-GROUP job-attributes-tag COUNT 1 + EXPECT ?output-device-assigned OF-TYPE name IN-GROUP job-attributes-tag COUNT 1 + EXPECT ?time-at-creation OF-TYPE integer IN-GROUP job-attributes-tag COUNT 1 WITH-VALUE >-1 + EXPECT ?time-at-processing OF-TYPE no-value|integer IN-GROUP job-attributes-tag COUNT 1 WITH-VALUE >-1 + EXPECT ?time-at-completed OF-TYPE no-value|integer IN-GROUP job-attributes-tag COUNT 1 WITH-VALUE >-1 + EXPECT ?job-printer-up-time OF-TYPE no-value|integer IN-GROUP job-attributes-tag COUNT 1 + EXPECT ?date-time-at-creation OF-TYPE no-value|dateTime IN-GROUP job-attributes-tag COUNT 1 + EXPECT ?date-time-at-processing OF-TYPE no-value|dateTime IN-GROUP job-attributes-tag COUNT 1 + EXPECT ?date-time-at-completed OF-TYPE no-value|dateTime IN-GROUP job-attributes-tag COUNT 1 + EXPECT ?number-of-intervening-jobs OF-TYPE integer IN-GROUP job-attributes-tag COUNT 1 + EXPECT ?job-message-from-operator OF-TYPE text IN-GROUP job-attributes-tag COUNT 1 + EXPECT ?job-k-octets OF-TYPE integer|no-value IN-GROUP job-attributes-tag COUNT 1 + EXPECT ?job-impressions OF-TYPE integer|no-value IN-GROUP job-attributes-tag COUNT 1 + EXPECT ?job-media-sheets OF-TYPE integer|no-value IN-GROUP job-attributes-tag COUNT 1 + EXPECT ?job-k-octets-processed OF-TYPE integer|no-value IN-GROUP job-attributes-tag COUNT 1 + EXPECT ?job-impressions-completed OF-TYPE integer|no-value IN-GROUP job-attributes-tag COUNT 1 + EXPECT ?job-media-sheets-completed OF-TYPE integer|no-value IN-GROUP job-attributes-tag COUNT 1 + + EXPECT ?copies OF-TYPE integer IN-GROUP job-attributes-tag COUNT 1 WITH-VALUE >0 + EXPECT ?finishings OF-TYPE enum IN-GROUP job-attributes-tag + EXPECT ?job-hold-until OF-TYPE keyword|name IN-GROUP job-attributes-tag COUNT 1 + EXPECT ?job-priority OF-TYPE integer IN-GROUP job-attributes-tag COUNT 1 WITH-VALUE >0,<101 + EXPECT ?job-sheets OF-TYPE keyword|name IN-GROUP job-attributes-tag + EXPECT ?media OF-TYPE keyword|name IN-GROUP job-attributes-tag COUNT 1 + EXPECT ?multiple-document-handling OF-TYPE keyword IN-GROUP job-attributes-tag WITH-VALUE "/^(single-document|separate-documents-uncollated-copies|separate-documents-collated-copies|single-document-new-sheet)$$/" + EXPECT ?number-up OF-TYPE integer IN-GROUP job-attributes-tag COUNT 1 WITH-VALUE >0 + EXPECT ?orientation-requested OF-TYPE enum IN-GROUP job-attributes-tag COUNT 1 WITH-VALUE 3,4,5,6 + EXPECT ?pages-ranges OF-TYPE rangeOfInteger IN-GROUP job-attributes-tag + EXPECT ?print-quality OF-TYPE enum IN-GROUP job-attributes-tag COUNT 1 WITH-VALUE 3,4,5 + EXPECT ?printer-resolution OF-TYPE resolution IN-GROUP job-attributes-tag COUNT 1 + EXPECT ?sides OF-TYPE keyword IN-GROUP job-attributes-tag COUNT 1 WITH-VALUE "/^(one-sided|two-sided-long-edge|two-sided-short-edge)$$/" } @@ -472,59 +471,59 @@ DEFINE IPP_URI_SCHEME "/^ipps?://.+$$/" # # Required by: RFC 8011 section 4.2.6 { - SKIP-IF-DEFINED PRINT_JOB_COMPLETED - - NAME "RFC 8011 section 4.2.6: Get-Jobs Operation (my-jobs)" - OPERATION Get-Jobs - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR boolean my-jobs true - - STATUS successful-ok - EXPECT ?job-id OF-TYPE integer IN-GROUP job-attributes-tag COUNT 1 WITH-VALUE >0 - EXPECT ?job-uri OF-TYPE uri IN-GROUP job-attributes-tag COUNT 1 WITH-VALUE "$IPP_URI_SCHEME" - EXPECT !job-printer-uri - EXPECT !job-more-info - EXPECT !job-name - EXPECT !job-originating-user-name - EXPECT !job-state - EXPECT !job-state-reasons - EXPECT !job-state-message - EXPECT !job-detailed-status-messages - EXPECT !number-of-documents - EXPECT !output-device-assigned - EXPECT !time-at-creation - EXPECT !time-at-processing - EXPECT !time-at-completed - EXPECT !job-printer-up-time - EXPECT !date-time-at-creation - EXPECT !date-time-at-processing - EXPECT !date-time-at-completed - EXPECT !number-of-intervening-jobs - EXPECT !job-message-from-operator - EXPECT !job-k-octets - EXPECT !job-impressions - EXPECT !job-media-sheets - EXPECT !job-k-octets-processed - EXPECT !job-impressions-completed - EXPECT !job-media-sheets-completed - - EXPECT !copies - EXPECT !finishings - EXPECT !job-hold-until - EXPECT !job-priority - EXPECT !job-sheets - EXPECT !media - EXPECT !multiple-document-handling - EXPECT !number-up - EXPECT !orientation-requested - EXPECT !pages-ranges - EXPECT !print-quality - EXPECT !printer-resolution - EXPECT !sides + SKIP-IF-DEFINED PRINT_JOB_COMPLETED + + NAME "RFC 8011 section 4.2.6: Get-Jobs Operation (my-jobs)" + OPERATION Get-Jobs + GROUP operation-attributes-tag + ATTR charset attributes-charset utf-8 + ATTR naturalLanguage attributes-natural-language en + ATTR uri printer-uri $uri + ATTR name requesting-user-name $user + ATTR boolean my-jobs true + + STATUS successful-ok + EXPECT ?job-id OF-TYPE integer IN-GROUP job-attributes-tag COUNT 1 WITH-VALUE >0 + EXPECT ?job-uri OF-TYPE uri IN-GROUP job-attributes-tag COUNT 1 WITH-VALUE "$IPP_URI_SCHEME" + EXPECT !job-printer-uri + EXPECT !job-more-info + EXPECT !job-name + EXPECT !job-originating-user-name + EXPECT !job-state + EXPECT !job-state-reasons + EXPECT !job-state-message + EXPECT !job-detailed-status-messages + EXPECT !number-of-documents + EXPECT !output-device-assigned + EXPECT !time-at-creation + EXPECT !time-at-processing + EXPECT !time-at-completed + EXPECT !job-printer-up-time + EXPECT !date-time-at-creation + EXPECT !date-time-at-processing + EXPECT !date-time-at-completed + EXPECT !number-of-intervening-jobs + EXPECT !job-message-from-operator + EXPECT !job-k-octets + EXPECT !job-impressions + EXPECT !job-media-sheets + EXPECT !job-k-octets-processed + EXPECT !job-impressions-completed + EXPECT !job-media-sheets-completed + + EXPECT !copies + EXPECT !finishings + EXPECT !job-hold-until + EXPECT !job-priority + EXPECT !job-sheets + EXPECT !media + EXPECT !multiple-document-handling + EXPECT !number-up + EXPECT !orientation-requested + EXPECT !pages-ranges + EXPECT !print-quality + EXPECT !printer-resolution + EXPECT !sides } @@ -532,63 +531,63 @@ DEFINE IPP_URI_SCHEME "/^ipps?://.+$$/" # # Required by: RFC 8011 section 4.2.6 { - SKIP-IF-DEFINED PRINT_JOB_COMPLETED - - # Skip this test when doing authenticated printing since we'll always - # use the authenticated username over the requesting-user-name value. - SKIP-IF-DEFINED uriuser - - NAME "RFC 8011 section 4.2.6: Get-Jobs Operation (my-jobs different user)" - OPERATION Get-Jobs - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name not-$user - ATTR boolean my-jobs true - - STATUS successful-ok - EXPECT !job-id - EXPECT !job-uri - EXPECT !job-printer-uri - EXPECT !job-more-info - EXPECT !job-name - EXPECT !job-originating-user-name - EXPECT !job-state - EXPECT !job-state-reasons - EXPECT !job-state-message - EXPECT !job-detailed-status-messages - EXPECT !number-of-documents - EXPECT !output-device-assigned - EXPECT !time-at-creation - EXPECT !time-at-processing - EXPECT !time-at-completed - EXPECT !job-printer-up-time - EXPECT !date-time-at-creation - EXPECT !date-time-at-processing - EXPECT !date-time-at-completed - EXPECT !number-of-intervening-jobs - EXPECT !job-message-from-operator - EXPECT !job-k-octets - EXPECT !job-impressions - EXPECT !job-media-sheets - EXPECT !job-k-octets-processed - EXPECT !job-impressions-completed - EXPECT !job-media-sheets-completed - - EXPECT !copies - EXPECT !finishings - EXPECT !job-hold-until - EXPECT !job-priority - EXPECT !job-sheets - EXPECT !media - EXPECT !multiple-document-handling - EXPECT !number-up - EXPECT !orientation-requested - EXPECT !pages-ranges - EXPECT !print-quality - EXPECT !printer-resolution - EXPECT !sides + SKIP-IF-DEFINED PRINT_JOB_COMPLETED + + # Skip this test when doing authenticated printing since we'll always + # use the authenticated username over the requesting-user-name value. + SKIP-IF-DEFINED uriuser + + NAME "RFC 8011 section 4.2.6: Get-Jobs Operation (my-jobs different user)" + OPERATION Get-Jobs + GROUP operation-attributes-tag + ATTR charset attributes-charset utf-8 + ATTR naturalLanguage attributes-natural-language en + ATTR uri printer-uri $uri + ATTR name requesting-user-name not-$user + ATTR boolean my-jobs true + + STATUS successful-ok + EXPECT !job-id + EXPECT !job-uri + EXPECT !job-printer-uri + EXPECT !job-more-info + EXPECT !job-name + EXPECT !job-originating-user-name + EXPECT !job-state + EXPECT !job-state-reasons + EXPECT !job-state-message + EXPECT !job-detailed-status-messages + EXPECT !number-of-documents + EXPECT !output-device-assigned + EXPECT !time-at-creation + EXPECT !time-at-processing + EXPECT !time-at-completed + EXPECT !job-printer-up-time + EXPECT !date-time-at-creation + EXPECT !date-time-at-processing + EXPECT !date-time-at-completed + EXPECT !number-of-intervening-jobs + EXPECT !job-message-from-operator + EXPECT !job-k-octets + EXPECT !job-impressions + EXPECT !job-media-sheets + EXPECT !job-k-octets-processed + EXPECT !job-impressions-completed + EXPECT !job-media-sheets-completed + + EXPECT !copies + EXPECT !finishings + EXPECT !job-hold-until + EXPECT !job-priority + EXPECT !job-sheets + EXPECT !media + EXPECT !multiple-document-handling + EXPECT !number-up + EXPECT !orientation-requested + EXPECT !pages-ranges + EXPECT !print-quality + EXPECT !printer-resolution + EXPECT !sides } @@ -596,78 +595,78 @@ DEFINE IPP_URI_SCHEME "/^ipps?://.+$$/" # # Required by: RFC 8011 section 4.2.6 { - SKIP-IF-DEFINED PRINT_JOB_COMPLETED - - NAME "RFC 8011 section 4.2.6: Get-Jobs Operation (which-jobs=not-completed)" - OPERATION Get-Jobs - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR keyword which-jobs not-completed - - STATUS successful-ok - EXPECT ?job-id OF-TYPE integer IN-GROUP job-attributes-tag COUNT 1 WITH-VALUE >0 - EXPECT ?job-uri OF-TYPE uri IN-GROUP job-attributes-tag COUNT 1 WITH-VALUE "$IPP_URI_SCHEME" - EXPECT !job-printer-uri - EXPECT !job-more-info - EXPECT !job-name - EXPECT !job-originating-user-name - EXPECT !job-state - EXPECT !job-state-reasons - EXPECT !job-state-message - EXPECT !job-detailed-status-messages - EXPECT !number-of-documents - EXPECT !output-device-assigned - EXPECT !time-at-creation - EXPECT !time-at-processing - EXPECT !time-at-completed - EXPECT !job-printer-up-time - EXPECT !date-time-at-creation - EXPECT !date-time-at-processing - EXPECT !date-time-at-completed - EXPECT !number-of-intervening-jobs - EXPECT !job-message-from-operator - EXPECT !job-k-octets - EXPECT !job-impressions - EXPECT !job-media-sheets - EXPECT !job-k-octets-processed - EXPECT !job-impressions-completed - EXPECT !job-media-sheets-completed - - EXPECT !copies - EXPECT !finishings - EXPECT !job-hold-until - EXPECT !job-priority - EXPECT !job-sheets - EXPECT !media - EXPECT !multiple-document-handling - EXPECT !number-up - EXPECT !orientation-requested - EXPECT !pages-ranges - EXPECT !print-quality - EXPECT !printer-resolution - EXPECT !sides + SKIP-IF-DEFINED PRINT_JOB_COMPLETED + + NAME "RFC 8011 section 4.2.6: Get-Jobs Operation (which-jobs=not-completed)" + OPERATION Get-Jobs + GROUP operation-attributes-tag + ATTR charset attributes-charset utf-8 + ATTR naturalLanguage attributes-natural-language en + ATTR uri printer-uri $uri + ATTR name requesting-user-name $user + ATTR keyword which-jobs not-completed + + STATUS successful-ok + EXPECT ?job-id OF-TYPE integer IN-GROUP job-attributes-tag COUNT 1 WITH-VALUE >0 + EXPECT ?job-uri OF-TYPE uri IN-GROUP job-attributes-tag COUNT 1 WITH-VALUE "$IPP_URI_SCHEME" + EXPECT !job-printer-uri + EXPECT !job-more-info + EXPECT !job-name + EXPECT !job-originating-user-name + EXPECT !job-state + EXPECT !job-state-reasons + EXPECT !job-state-message + EXPECT !job-detailed-status-messages + EXPECT !number-of-documents + EXPECT !output-device-assigned + EXPECT !time-at-creation + EXPECT !time-at-processing + EXPECT !time-at-completed + EXPECT !job-printer-up-time + EXPECT !date-time-at-creation + EXPECT !date-time-at-processing + EXPECT !date-time-at-completed + EXPECT !number-of-intervening-jobs + EXPECT !job-message-from-operator + EXPECT !job-k-octets + EXPECT !job-impressions + EXPECT !job-media-sheets + EXPECT !job-k-octets-processed + EXPECT !job-impressions-completed + EXPECT !job-media-sheets-completed + + EXPECT !copies + EXPECT !finishings + EXPECT !job-hold-until + EXPECT !job-priority + EXPECT !job-sheets + EXPECT !media + EXPECT !multiple-document-handling + EXPECT !number-up + EXPECT !orientation-requested + EXPECT !pages-ranges + EXPECT !print-quality + EXPECT !printer-resolution + EXPECT !sides } # Wait for job to complete... { - SKIP-IF-NOT-DEFINED job-id + SKIP-IF-NOT-DEFINED job-id - NAME "Get-Job-Attributes Until Job Complete" - OPERATION Get-Job-Attributes - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR integer job-id $job-id - ATTR name requesting-user-name $user + NAME "Get-Job-Attributes Until Job Complete" + OPERATION Get-Job-Attributes + GROUP operation-attributes-tag + ATTR charset attributes-charset utf-8 + ATTR naturalLanguage attributes-natural-language en + ATTR uri printer-uri $uri + ATTR integer job-id $job-id + ATTR name requesting-user-name $user - STATUS successful-ok - EXPECT job-state OF-TYPE unknown|enum IN-GROUP job-attributes-tag COUNT 1 WITH-VALUE >6 REPEAT-NO-MATCH REPEAT-LIMIT 30 - DISPLAY job-state + STATUS successful-ok + EXPECT job-state OF-TYPE unknown|enum IN-GROUP job-attributes-tag COUNT 1 WITH-VALUE >6 REPEAT-NO-MATCH REPEAT-LIMIT 30 + DISPLAY job-state } @@ -675,57 +674,57 @@ DEFINE IPP_URI_SCHEME "/^ipps?://.+$$/" # # Required by: RFC 8011 section 4.2.6 { - NAME "RFC 8011 section 4.2.6: Get-Jobs Operation (which-jobs=completed)" - OPERATION Get-Jobs - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR keyword which-jobs completed - - STATUS successful-ok - EXPECT job-id OF-TYPE integer IN-GROUP job-attributes-tag COUNT 1 WITH-VALUE >0 - EXPECT job-uri OF-TYPE uri IN-GROUP job-attributes-tag COUNT 1 WITH-VALUE "$IPP_URI_SCHEME" - EXPECT !job-printer-uri - EXPECT !job-more-info - EXPECT !job-name - EXPECT !job-originating-user-name - EXPECT !job-state - EXPECT !job-state-reasons - EXPECT !job-state-message - EXPECT !job-detailed-status-messages - EXPECT !number-of-documents - EXPECT !output-device-assigned - EXPECT !time-at-creation - EXPECT !time-at-processing - EXPECT !time-at-completed - EXPECT !job-printer-up-time - EXPECT !date-time-at-creation - EXPECT !date-time-at-processing - EXPECT !date-time-at-completed - EXPECT !number-of-intervening-jobs - EXPECT !job-message-from-operator - EXPECT !job-k-octets - EXPECT !job-impressions - EXPECT !job-media-sheets - EXPECT !job-k-octets-processed - EXPECT !job-impressions-completed - EXPECT !job-media-sheets-completed - - EXPECT !copies - EXPECT !finishings - EXPECT !job-hold-until - EXPECT !job-priority - EXPECT !job-sheets - EXPECT !media - EXPECT !multiple-document-handling - EXPECT !number-up - EXPECT !orientation-requested - EXPECT !pages-ranges - EXPECT !print-quality - EXPECT !printer-resolution - EXPECT !sides + NAME "RFC 8011 section 4.2.6: Get-Jobs Operation (which-jobs=completed)" + OPERATION Get-Jobs + GROUP operation-attributes-tag + ATTR charset attributes-charset utf-8 + ATTR naturalLanguage attributes-natural-language en + ATTR uri printer-uri $uri + ATTR name requesting-user-name $user + ATTR keyword which-jobs completed + + STATUS successful-ok + EXPECT job-id OF-TYPE integer IN-GROUP job-attributes-tag COUNT 1 WITH-VALUE >0 + EXPECT job-uri OF-TYPE uri IN-GROUP job-attributes-tag COUNT 1 WITH-VALUE "$IPP_URI_SCHEME" + EXPECT !job-printer-uri + EXPECT !job-more-info + EXPECT !job-name + EXPECT !job-originating-user-name + EXPECT !job-state + EXPECT !job-state-reasons + EXPECT !job-state-message + EXPECT !job-detailed-status-messages + EXPECT !number-of-documents + EXPECT !output-device-assigned + EXPECT !time-at-creation + EXPECT !time-at-processing + EXPECT !time-at-completed + EXPECT !job-printer-up-time + EXPECT !date-time-at-creation + EXPECT !date-time-at-processing + EXPECT !date-time-at-completed + EXPECT !number-of-intervening-jobs + EXPECT !job-message-from-operator + EXPECT !job-k-octets + EXPECT !job-impressions + EXPECT !job-media-sheets + EXPECT !job-k-octets-processed + EXPECT !job-impressions-completed + EXPECT !job-media-sheets-completed + + EXPECT !copies + EXPECT !finishings + EXPECT !job-hold-until + EXPECT !job-priority + EXPECT !job-sheets + EXPECT !media + EXPECT !multiple-document-handling + EXPECT !number-up + EXPECT !orientation-requested + EXPECT !pages-ranges + EXPECT !print-quality + EXPECT !printer-resolution + EXPECT !sides } @@ -733,60 +732,60 @@ DEFINE IPP_URI_SCHEME "/^ipps?://.+$$/" # # Required by: RFC 8011 section 4.2.6 { - SKIP-IF-DEFINED PRINT_JOB_COMPLETED - - NAME "RFC 8011 section 4.2.6: Get-Jobs Operation (which-jobs, requested-attributes)" - OPERATION Get-Jobs - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR keyword requested-attributes all - ATTR keyword which-jobs completed - - STATUS successful-ok - EXPECT job-id OF-TYPE integer IN-GROUP job-attributes-tag COUNT 1 WITH-VALUE >0 - EXPECT job-uri OF-TYPE uri IN-GROUP job-attributes-tag COUNT 1 WITH-VALUE "$IPP_URI_SCHEME" - EXPECT job-printer-uri OF-TYPE uri IN-GROUP job-attributes-tag COUNT 1 WITH-VALUE "$IPP_URI_SCHEME" - EXPECT ?job-more-info OF-TYPE uri IN-GROUP job-attributes-tag COUNT 1 WITH-VALUE "$HTTP_URI_SCHEME" - EXPECT job-name OF-TYPE name IN-GROUP job-attributes-tag COUNT 1 - EXPECT job-originating-user-name OF-TYPE name IN-GROUP job-attributes-tag COUNT 1 - EXPECT job-state OF-TYPE unknown|enum IN-GROUP job-attributes-tag COUNT 1 WITH-VALUE >2,<10 - EXPECT job-state-reasons OF-TYPE keyword IN-GROUP job-attributes-tag - EXPECT ?job-state-message OF-TYPE text IN-GROUP job-attributes-tag COUNT 1 - EXPECT ?job-detailed-status-messages OF-TYPE text IN-GROUP job-attributes-tag - EXPECT ?number-of-documents OF-TYPE integer IN-GROUP job-attributes-tag COUNT 1 - EXPECT ?output-device-assigned OF-TYPE name IN-GROUP job-attributes-tag COUNT 1 - EXPECT time-at-creation OF-TYPE integer IN-GROUP job-attributes-tag COUNT 1 WITH-VALUE >-1 - EXPECT time-at-processing OF-TYPE no-value|integer IN-GROUP job-attributes-tag COUNT 1 WITH-VALUE >-1 - EXPECT time-at-completed OF-TYPE no-value|integer IN-GROUP job-attributes-tag COUNT 1 WITH-VALUE >-1 - EXPECT job-printer-up-time OF-TYPE no-value|integer IN-GROUP job-attributes-tag COUNT 1 - EXPECT ?date-time-at-creation OF-TYPE no-value|dateTime IN-GROUP job-attributes-tag COUNT 1 - EXPECT ?date-time-at-processing OF-TYPE no-value|dateTime IN-GROUP job-attributes-tag COUNT 1 - EXPECT ?date-time-at-completed OF-TYPE no-value|dateTime IN-GROUP job-attributes-tag COUNT 1 - EXPECT ?number-of-intervening-jobs OF-TYPE integer IN-GROUP job-attributes-tag COUNT 1 - EXPECT ?job-message-from-operator OF-TYPE text IN-GROUP job-attributes-tag COUNT 1 - EXPECT ?job-k-octets OF-TYPE integer|no-value IN-GROUP job-attributes-tag COUNT 1 - EXPECT ?job-impressions OF-TYPE integer|no-value IN-GROUP job-attributes-tag COUNT 1 - EXPECT ?job-media-sheets OF-TYPE integer|no-value IN-GROUP job-attributes-tag COUNT 1 - EXPECT ?job-k-octets-processed OF-TYPE integer|no-value IN-GROUP job-attributes-tag COUNT 1 - EXPECT ?job-impressions-completed OF-TYPE integer|no-value IN-GROUP job-attributes-tag COUNT 1 - EXPECT ?job-media-sheets-completed OF-TYPE integer|no-value IN-GROUP job-attributes-tag COUNT 1 - - EXPECT ?copies OF-TYPE integer IN-GROUP job-attributes-tag COUNT 1 WITH-VALUE >0 - EXPECT ?finishings OF-TYPE enum IN-GROUP job-attributes-tag - EXPECT ?job-hold-until OF-TYPE keyword|name IN-GROUP job-attributes-tag COUNT 1 - EXPECT ?job-priority OF-TYPE integer IN-GROUP job-attributes-tag COUNT 1 WITH-VALUE >0,<101 - EXPECT ?job-sheets OF-TYPE keyword|name IN-GROUP job-attributes-tag - EXPECT ?media OF-TYPE keyword|name IN-GROUP job-attributes-tag COUNT 1 - EXPECT ?multiple-document-handling OF-TYPE keyword IN-GROUP job-attributes-tag WITH-VALUE "/^(single-document|separate-documents-uncollated-copies|separate-documents-collated-copies|single-document-new-sheet)$$/" - EXPECT ?number-up OF-TYPE integer IN-GROUP job-attributes-tag COUNT 1 WITH-VALUE >0 - EXPECT ?orientation-requested OF-TYPE enum IN-GROUP job-attributes-tag COUNT 1 WITH-VALUE 3,4,5,6 - EXPECT ?pages-ranges OF-TYPE rangeOfInteger IN-GROUP job-attributes-tag - EXPECT ?print-quality OF-TYPE enum IN-GROUP job-attributes-tag COUNT 1 WITH-VALUE 3,4,5 - EXPECT ?printer-resolution OF-TYPE resolution IN-GROUP job-attributes-tag COUNT 1 - EXPECT ?sides OF-TYPE keyword IN-GROUP job-attributes-tag COUNT 1 WITH-VALUE "/^(one-sided|two-sided-long-edge|two-sided-short-edge)$$/" + SKIP-IF-DEFINED PRINT_JOB_COMPLETED + + NAME "RFC 8011 section 4.2.6: Get-Jobs Operation (which-jobs, requested-attributes)" + OPERATION Get-Jobs + GROUP operation-attributes-tag + ATTR charset attributes-charset utf-8 + ATTR naturalLanguage attributes-natural-language en + ATTR uri printer-uri $uri + ATTR name requesting-user-name $user + ATTR keyword requested-attributes all + ATTR keyword which-jobs completed + + STATUS successful-ok + EXPECT job-id OF-TYPE integer IN-GROUP job-attributes-tag COUNT 1 WITH-VALUE >0 + EXPECT job-uri OF-TYPE uri IN-GROUP job-attributes-tag COUNT 1 WITH-VALUE "$IPP_URI_SCHEME" + EXPECT job-printer-uri OF-TYPE uri IN-GROUP job-attributes-tag COUNT 1 WITH-VALUE "$IPP_URI_SCHEME" + EXPECT ?job-more-info OF-TYPE uri IN-GROUP job-attributes-tag COUNT 1 WITH-VALUE "$HTTP_URI_SCHEME" + EXPECT job-name OF-TYPE name IN-GROUP job-attributes-tag COUNT 1 + EXPECT job-originating-user-name OF-TYPE name IN-GROUP job-attributes-tag COUNT 1 + EXPECT job-state OF-TYPE unknown|enum IN-GROUP job-attributes-tag COUNT 1 WITH-VALUE >2,<10 + EXPECT job-state-reasons OF-TYPE keyword IN-GROUP job-attributes-tag + EXPECT ?job-state-message OF-TYPE text IN-GROUP job-attributes-tag COUNT 1 + EXPECT ?job-detailed-status-messages OF-TYPE text IN-GROUP job-attributes-tag + EXPECT ?number-of-documents OF-TYPE integer IN-GROUP job-attributes-tag COUNT 1 + EXPECT ?output-device-assigned OF-TYPE name IN-GROUP job-attributes-tag COUNT 1 + EXPECT time-at-creation OF-TYPE integer IN-GROUP job-attributes-tag COUNT 1 WITH-VALUE >-1 + EXPECT time-at-processing OF-TYPE no-value|integer IN-GROUP job-attributes-tag COUNT 1 WITH-VALUE >-1 + EXPECT time-at-completed OF-TYPE no-value|integer IN-GROUP job-attributes-tag COUNT 1 WITH-VALUE >-1 + EXPECT job-printer-up-time OF-TYPE no-value|integer IN-GROUP job-attributes-tag COUNT 1 + EXPECT ?date-time-at-creation OF-TYPE no-value|dateTime IN-GROUP job-attributes-tag COUNT 1 + EXPECT ?date-time-at-processing OF-TYPE no-value|dateTime IN-GROUP job-attributes-tag COUNT 1 + EXPECT ?date-time-at-completed OF-TYPE no-value|dateTime IN-GROUP job-attributes-tag COUNT 1 + EXPECT ?number-of-intervening-jobs OF-TYPE integer IN-GROUP job-attributes-tag COUNT 1 + EXPECT ?job-message-from-operator OF-TYPE text IN-GROUP job-attributes-tag COUNT 1 + EXPECT ?job-k-octets OF-TYPE integer|no-value IN-GROUP job-attributes-tag COUNT 1 + EXPECT ?job-impressions OF-TYPE integer|no-value IN-GROUP job-attributes-tag COUNT 1 + EXPECT ?job-media-sheets OF-TYPE integer|no-value IN-GROUP job-attributes-tag COUNT 1 + EXPECT ?job-k-octets-processed OF-TYPE integer|no-value IN-GROUP job-attributes-tag COUNT 1 + EXPECT ?job-impressions-completed OF-TYPE integer|no-value IN-GROUP job-attributes-tag COUNT 1 + EXPECT ?job-media-sheets-completed OF-TYPE integer|no-value IN-GROUP job-attributes-tag COUNT 1 + + EXPECT ?copies OF-TYPE integer IN-GROUP job-attributes-tag COUNT 1 WITH-VALUE >0 + EXPECT ?finishings OF-TYPE enum IN-GROUP job-attributes-tag + EXPECT ?job-hold-until OF-TYPE keyword|name IN-GROUP job-attributes-tag COUNT 1 + EXPECT ?job-priority OF-TYPE integer IN-GROUP job-attributes-tag COUNT 1 WITH-VALUE >0,<101 + EXPECT ?job-sheets OF-TYPE keyword|name IN-GROUP job-attributes-tag + EXPECT ?media OF-TYPE keyword|name IN-GROUP job-attributes-tag COUNT 1 + EXPECT ?multiple-document-handling OF-TYPE keyword IN-GROUP job-attributes-tag WITH-VALUE "/^(single-document|separate-documents-uncollated-copies|separate-documents-collated-copies|single-document-new-sheet)$$/" + EXPECT ?number-up OF-TYPE integer IN-GROUP job-attributes-tag COUNT 1 WITH-VALUE >0 + EXPECT ?orientation-requested OF-TYPE enum IN-GROUP job-attributes-tag COUNT 1 WITH-VALUE 3,4,5,6 + EXPECT ?pages-ranges OF-TYPE rangeOfInteger IN-GROUP job-attributes-tag + EXPECT ?print-quality OF-TYPE enum IN-GROUP job-attributes-tag COUNT 1 WITH-VALUE 3,4,5 + EXPECT ?printer-resolution OF-TYPE resolution IN-GROUP job-attributes-tag COUNT 1 + EXPECT ?sides OF-TYPE keyword IN-GROUP job-attributes-tag COUNT 1 WITH-VALUE "/^(one-sided|two-sided-long-edge|two-sided-short-edge)$$/" } @@ -794,16 +793,16 @@ DEFINE IPP_URI_SCHEME "/^ipps?://.+$$/" # # Required by: RFC 8011 section 4.3.3 { - NAME "RFC 8011 section 4.3.3: Cancel-Job Operation (completed job)" - OPERATION Cancel-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR integer job-id $job-id - ATTR name requesting-user-name $user + NAME "RFC 8011 section 4.3.3: Cancel-Job Operation (completed job)" + OPERATION Cancel-Job + GROUP operation-attributes-tag + ATTR charset attributes-charset utf-8 + ATTR naturalLanguage attributes-natural-language en + ATTR uri printer-uri $uri + ATTR integer job-id $job-id + ATTR name requesting-user-name $user - STATUS client-error-not-possible + STATUS client-error-not-possible } @@ -811,34 +810,32 @@ DEFINE IPP_URI_SCHEME "/^ipps?://.+$$/" # # Required by: RFC 8011 section 4.2.1 { - NAME "RFC 8011 section 4.2.1: Print-Job Operation" - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR name job-name $filename - ATTR boolean ipp-attribute-fidelity false - ATTR name document-name $filename - ATTR keyword compression none - ATTR mimeMediaType document-format $filetype - FILE $filename - - STATUS successful-ok - STATUS client-error-document-format-not-supported - STATUS server-error-job-canceled - STATUS server-error-busy REPEAT-MATCH REPEAT-LIMIT 30 - - EXPECT job-uri OF-TYPE uri COUNT 1 IN-GROUP job-attributes-tag WITH-VALUE "$IPP_URI_SCHEME" - EXPECT job-id OF-TYPE integer COUNT 1 IN-GROUP job-attributes-tag - WITH-VALUE >0 - EXPECT job-state OF-TYPE unknown|enum COUNT 1 IN-GROUP job-attributes-tag - WITH-VALUE 3,4,5,6,7,8,9 - EXPECT job-state-reasons OF-TYPE keyword IN-GROUP job-attributes-tag - EXPECT ?job-state-message OF-TYPE text IN-GROUP job-attributes-tag - EXPECT ?number-of-intervening-jobs OF-TYPE integer - IN-GROUP job-attributes-tag WITH-VALUE >-1 + NAME "RFC 8011 section 4.2.1: Print-Job Operation" + OPERATION Print-Job + GROUP operation-attributes-tag + ATTR charset attributes-charset utf-8 + ATTR naturalLanguage attributes-natural-language en + ATTR uri printer-uri $uri + ATTR name requesting-user-name $user + ATTR name job-name $filename + ATTR boolean ipp-attribute-fidelity false + ATTR name document-name $filename + ATTR keyword compression none + ATTR mimeMediaType document-format $filetype + FILE $filename + + STATUS successful-ok + STATUS client-error-document-format-not-supported + STATUS server-error-job-canceled + STATUS server-error-busy REPEAT-MATCH REPEAT-LIMIT 30 + + EXPECT job-uri OF-TYPE uri COUNT 1 IN-GROUP job-attributes-tag WITH-VALUE "$IPP_URI_SCHEME" + EXPECT job-id OF-TYPE integer COUNT 1 IN-GROUP job-attributes-tag WITH-VALUE >0 + EXPECT job-state OF-TYPE unknown|enum COUNT 1 IN-GROUP job-attributes-tag WITH-VALUE 3,4,5,6,7,8,9 + EXPECT job-state-reasons OF-TYPE keyword IN-GROUP job-attributes-tag + EXPECT ?job-state-message OF-TYPE text IN-GROUP job-attributes-tag + EXPECT ?number-of-intervening-jobs OF-TYPE integer + IN-GROUP job-attributes-tag WITH-VALUE >-1 } @@ -846,17 +843,17 @@ DEFINE IPP_URI_SCHEME "/^ipps?://.+$$/" # # Required by: RFC 8011 section 4.3.3 { - NAME "RFC 8011 section 4.3.3: Cancel-Job Operation (pending/processing job)" - OPERATION Cancel-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR integer job-id $job-id - ATTR name requesting-user-name $user + NAME "RFC 8011 section 4.3.3: Cancel-Job Operation (pending/processing job)" + OPERATION Cancel-Job + GROUP operation-attributes-tag + ATTR charset attributes-charset utf-8 + ATTR naturalLanguage attributes-natural-language en + ATTR uri printer-uri $uri + ATTR integer job-id $job-id + ATTR name requesting-user-name $user - STATUS successful-ok - STATUS client-error-not-possible + STATUS successful-ok + STATUS client-error-not-possible } @@ -864,57 +861,57 @@ DEFINE IPP_URI_SCHEME "/^ipps?://.+$$/" # # Required by: RFC 8011 section 4.3.4 { - NAME "RFC 8011 section 4.3.4: Get-Job-Attributes Operation" - OPERATION Get-Job-Attributes - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR integer job-id $job-id - ATTR name requesting-user-name $user - - STATUS successful-ok - EXPECT job-id OF-TYPE integer IN-GROUP job-attributes-tag COUNT 1 WITH-VALUE >0 - EXPECT job-uri OF-TYPE uri IN-GROUP job-attributes-tag COUNT 1 WITH-VALUE "$IPP_URI_SCHEME" - EXPECT job-printer-uri OF-TYPE uri IN-GROUP job-attributes-tag COUNT 1 WITH-VALUE "$IPP_URI_SCHEME" - EXPECT ?job-more-info OF-TYPE uri IN-GROUP job-attributes-tag COUNT 1 WITH-VALUE "$HTTP_URI_SCHEME" - EXPECT job-name OF-TYPE name IN-GROUP job-attributes-tag COUNT 1 - EXPECT job-originating-user-name OF-TYPE name IN-GROUP job-attributes-tag COUNT 1 - EXPECT job-state OF-TYPE unknown|enum IN-GROUP job-attributes-tag COUNT 1 WITH-VALUE >2,<10 - EXPECT job-state-reasons OF-TYPE keyword IN-GROUP job-attributes-tag - EXPECT ?job-state-message OF-TYPE text IN-GROUP job-attributes-tag COUNT 1 - EXPECT ?job-detailed-status-messages OF-TYPE text IN-GROUP job-attributes-tag - EXPECT ?number-of-documents OF-TYPE integer IN-GROUP job-attributes-tag COUNT 1 - EXPECT ?output-device-assigned OF-TYPE name IN-GROUP job-attributes-tag COUNT 1 - EXPECT time-at-creation OF-TYPE integer IN-GROUP job-attributes-tag COUNT 1 WITH-VALUE >-1 - EXPECT time-at-processing OF-TYPE no-value|integer IN-GROUP job-attributes-tag COUNT 1 WITH-VALUE >-1 - EXPECT time-at-completed OF-TYPE no-value|integer IN-GROUP job-attributes-tag COUNT 1 WITH-VALUE >-1 - EXPECT job-printer-up-time OF-TYPE no-value|integer IN-GROUP job-attributes-tag COUNT 1 - EXPECT ?date-time-at-creation OF-TYPE no-value|dateTime IN-GROUP job-attributes-tag COUNT 1 - EXPECT ?date-time-at-processing OF-TYPE no-value|dateTime IN-GROUP job-attributes-tag COUNT 1 - EXPECT ?date-time-at-completed OF-TYPE no-value|dateTime IN-GROUP job-attributes-tag COUNT 1 - EXPECT ?number-of-intervening-jobs OF-TYPE integer IN-GROUP job-attributes-tag COUNT 1 - EXPECT ?job-message-from-operator OF-TYPE text IN-GROUP job-attributes-tag COUNT 1 - EXPECT ?job-k-octets OF-TYPE integer|no-value IN-GROUP job-attributes-tag COUNT 1 - EXPECT ?job-impressions OF-TYPE integer|no-value IN-GROUP job-attributes-tag COUNT 1 - EXPECT ?job-media-sheets OF-TYPE integer|no-value IN-GROUP job-attributes-tag COUNT 1 - EXPECT ?job-k-octets-processed OF-TYPE integer|no-value IN-GROUP job-attributes-tag COUNT 1 - EXPECT ?job-impressions-completed OF-TYPE integer|no-value IN-GROUP job-attributes-tag COUNT 1 - EXPECT ?job-media-sheets-completed OF-TYPE integer|no-value IN-GROUP job-attributes-tag COUNT 1 - - EXPECT ?copies OF-TYPE integer IN-GROUP job-attributes-tag COUNT 1 WITH-VALUE >0 - EXPECT ?finishings OF-TYPE enum IN-GROUP job-attributes-tag - EXPECT ?job-hold-until OF-TYPE keyword|name IN-GROUP job-attributes-tag COUNT 1 - EXPECT ?job-priority OF-TYPE integer IN-GROUP job-attributes-tag COUNT 1 WITH-VALUE >0,<101 - EXPECT ?job-sheets OF-TYPE keyword|name IN-GROUP job-attributes-tag - EXPECT ?media OF-TYPE keyword|name IN-GROUP job-attributes-tag COUNT 1 - EXPECT ?multiple-document-handling OF-TYPE keyword IN-GROUP job-attributes-tag WITH-VALUE "/^(single-document|separate-documents-uncollated-copies|separate-documents-collated-copies|single-document-new-sheet)$$/" - EXPECT ?number-up OF-TYPE integer IN-GROUP job-attributes-tag COUNT 1 WITH-VALUE >0 - EXPECT ?orientation-requested OF-TYPE enum IN-GROUP job-attributes-tag COUNT 1 WITH-VALUE 3,4,5,6 - EXPECT ?pages-ranges OF-TYPE rangeOfInteger IN-GROUP job-attributes-tag - EXPECT ?print-quality OF-TYPE enum IN-GROUP job-attributes-tag COUNT 1 WITH-VALUE 3,4,5 - EXPECT ?printer-resolution OF-TYPE resolution IN-GROUP job-attributes-tag COUNT 1 - EXPECT ?sides OF-TYPE keyword IN-GROUP job-attributes-tag COUNT 1 WITH-VALUE "/^(one-sided|two-sided-long-edge|two-sided-short-edge)$$/" + NAME "RFC 8011 section 4.3.4: Get-Job-Attributes Operation" + OPERATION Get-Job-Attributes + GROUP operation-attributes-tag + ATTR charset attributes-charset utf-8 + ATTR naturalLanguage attributes-natural-language en + ATTR uri printer-uri $uri + ATTR integer job-id $job-id + ATTR name requesting-user-name $user + + STATUS successful-ok + EXPECT job-id OF-TYPE integer IN-GROUP job-attributes-tag COUNT 1 WITH-VALUE >0 + EXPECT job-uri OF-TYPE uri IN-GROUP job-attributes-tag COUNT 1 WITH-VALUE "$IPP_URI_SCHEME" + EXPECT job-printer-uri OF-TYPE uri IN-GROUP job-attributes-tag COUNT 1 WITH-VALUE "$IPP_URI_SCHEME" + EXPECT ?job-more-info OF-TYPE uri IN-GROUP job-attributes-tag COUNT 1 WITH-VALUE "$HTTP_URI_SCHEME" + EXPECT job-name OF-TYPE name IN-GROUP job-attributes-tag COUNT 1 + EXPECT job-originating-user-name OF-TYPE name IN-GROUP job-attributes-tag COUNT 1 + EXPECT job-state OF-TYPE unknown|enum IN-GROUP job-attributes-tag COUNT 1 WITH-VALUE >2,<10 + EXPECT job-state-reasons OF-TYPE keyword IN-GROUP job-attributes-tag + EXPECT ?job-state-message OF-TYPE text IN-GROUP job-attributes-tag COUNT 1 + EXPECT ?job-detailed-status-messages OF-TYPE text IN-GROUP job-attributes-tag + EXPECT ?number-of-documents OF-TYPE integer IN-GROUP job-attributes-tag COUNT 1 + EXPECT ?output-device-assigned OF-TYPE name IN-GROUP job-attributes-tag COUNT 1 + EXPECT time-at-creation OF-TYPE integer IN-GROUP job-attributes-tag COUNT 1 WITH-VALUE >-1 + EXPECT time-at-processing OF-TYPE no-value|integer IN-GROUP job-attributes-tag COUNT 1 WITH-VALUE >-1 + EXPECT time-at-completed OF-TYPE no-value|integer IN-GROUP job-attributes-tag COUNT 1 WITH-VALUE >-1 + EXPECT job-printer-up-time OF-TYPE no-value|integer IN-GROUP job-attributes-tag COUNT 1 + EXPECT ?date-time-at-creation OF-TYPE no-value|dateTime IN-GROUP job-attributes-tag COUNT 1 + EXPECT ?date-time-at-processing OF-TYPE no-value|dateTime IN-GROUP job-attributes-tag COUNT 1 + EXPECT ?date-time-at-completed OF-TYPE no-value|dateTime IN-GROUP job-attributes-tag COUNT 1 + EXPECT ?number-of-intervening-jobs OF-TYPE integer IN-GROUP job-attributes-tag COUNT 1 + EXPECT ?job-message-from-operator OF-TYPE text IN-GROUP job-attributes-tag COUNT 1 + EXPECT ?job-k-octets OF-TYPE integer|no-value IN-GROUP job-attributes-tag COUNT 1 + EXPECT ?job-impressions OF-TYPE integer|no-value IN-GROUP job-attributes-tag COUNT 1 + EXPECT ?job-media-sheets OF-TYPE integer|no-value IN-GROUP job-attributes-tag COUNT 1 + EXPECT ?job-k-octets-processed OF-TYPE integer|no-value IN-GROUP job-attributes-tag COUNT 1 + EXPECT ?job-impressions-completed OF-TYPE integer|no-value IN-GROUP job-attributes-tag COUNT 1 + EXPECT ?job-media-sheets-completed OF-TYPE integer|no-value IN-GROUP job-attributes-tag COUNT 1 + + EXPECT ?copies OF-TYPE integer IN-GROUP job-attributes-tag COUNT 1 WITH-VALUE >0 + EXPECT ?finishings OF-TYPE enum IN-GROUP job-attributes-tag + EXPECT ?job-hold-until OF-TYPE keyword|name IN-GROUP job-attributes-tag COUNT 1 + EXPECT ?job-priority OF-TYPE integer IN-GROUP job-attributes-tag COUNT 1 WITH-VALUE >0,<101 + EXPECT ?job-sheets OF-TYPE keyword|name IN-GROUP job-attributes-tag + EXPECT ?media OF-TYPE keyword|name IN-GROUP job-attributes-tag COUNT 1 + EXPECT ?multiple-document-handling OF-TYPE keyword IN-GROUP job-attributes-tag WITH-VALUE "/^(single-document|separate-documents-uncollated-copies|separate-documents-collated-copies|single-document-new-sheet)$$/" + EXPECT ?number-up OF-TYPE integer IN-GROUP job-attributes-tag COUNT 1 WITH-VALUE >0 + EXPECT ?orientation-requested OF-TYPE enum IN-GROUP job-attributes-tag COUNT 1 WITH-VALUE 3,4,5,6 + EXPECT ?pages-ranges OF-TYPE rangeOfInteger IN-GROUP job-attributes-tag + EXPECT ?print-quality OF-TYPE enum IN-GROUP job-attributes-tag COUNT 1 WITH-VALUE 3,4,5 + EXPECT ?printer-resolution OF-TYPE resolution IN-GROUP job-attributes-tag COUNT 1 + EXPECT ?sides OF-TYPE keyword IN-GROUP job-attributes-tag COUNT 1 WITH-VALUE "/^(one-sided|two-sided-long-edge|two-sided-short-edge)$$/" } @@ -922,35 +919,33 @@ DEFINE IPP_URI_SCHEME "/^ipps?://.+$$/" # # Defined by: RFC 8011 section 4.2.2 { - SKIP-IF-NOT-DEFINED OPTIONAL_PRINT_URI - SKIP-IF-NOT-DEFINED document-uri - - NAME "RFC 8011 section 4.2.2: Print-URI Operation" - OPERATION Print-URI - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR name job-name $filename - ATTR boolean ipp-attribute-fidelity false - ATTR name document-name $filename - ATTR keyword compression none - ATTR uri document-uri $document-uri - - STATUS successful-ok - STATUS server-error-job-canceled - STATUS server-error-busy REPEAT-MATCH REPEAT-LIMIT 30 - - EXPECT job-uri OF-TYPE uri COUNT 1 IN-GROUP job-attributes-tag WITH-VALUE "$IPP_URI_SCHEME" - EXPECT job-id OF-TYPE integer COUNT 1 IN-GROUP job-attributes-tag - WITH-VALUE >0 - EXPECT job-state OF-TYPE unknown|enum COUNT 1 IN-GROUP job-attributes-tag - WITH-VALUE 3,4,5,6,7,8,9 - EXPECT job-state-reasons OF-TYPE keyword IN-GROUP job-attributes-tag - EXPECT ?job-state-message OF-TYPE text IN-GROUP job-attributes-tag - EXPECT ?number-of-intervening-jobs OF-TYPE integer - IN-GROUP job-attributes-tag WITH-VALUE >-1 + SKIP-IF-NOT-DEFINED OPTIONAL_PRINT_URI + SKIP-IF-NOT-DEFINED document-uri + + NAME "RFC 8011 section 4.2.2: Print-URI Operation" + OPERATION Print-URI + GROUP operation-attributes-tag + ATTR charset attributes-charset utf-8 + ATTR naturalLanguage attributes-natural-language en + ATTR uri printer-uri $uri + ATTR name requesting-user-name $user + ATTR name job-name $filename + ATTR boolean ipp-attribute-fidelity false + ATTR name document-name $filename + ATTR keyword compression none + ATTR uri document-uri $document-uri + + STATUS successful-ok + STATUS server-error-job-canceled + STATUS server-error-busy REPEAT-MATCH REPEAT-LIMIT 30 + + EXPECT job-uri OF-TYPE uri COUNT 1 IN-GROUP job-attributes-tag WITH-VALUE "$IPP_URI_SCHEME" + EXPECT job-id OF-TYPE integer COUNT 1 IN-GROUP job-attributes-tag WITH-VALUE >0 + EXPECT job-state OF-TYPE unknown|enum COUNT 1 IN-GROUP job-attributes-tag WITH-VALUE 3,4,5,6,7,8,9 + EXPECT job-state-reasons OF-TYPE keyword IN-GROUP job-attributes-tag + EXPECT ?job-state-message OF-TYPE text IN-GROUP job-attributes-tag + EXPECT ?number-of-intervening-jobs OF-TYPE integer + IN-GROUP job-attributes-tag WITH-VALUE >-1 } @@ -958,29 +953,29 @@ DEFINE IPP_URI_SCHEME "/^ipps?://.+$$/" # # Defined by: RFC 8011 section 4.2.2 { - SKIP-IF-NOT-DEFINED OPTIONAL_PRINT_URI - SKIP-IF-NOT-DEFINED document-uri + SKIP-IF-NOT-DEFINED OPTIONAL_PRINT_URI + SKIP-IF-NOT-DEFINED document-uri - NAME "Print-URI with bad URI: Print-URI Operation" - OPERATION Print-URI - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR name job-name $filename - ATTR boolean ipp-attribute-fidelity false - ATTR name document-name $filename - ATTR keyword compression none - ATTR uri document-uri "bogus://bogus" + NAME "Print-URI with bad URI: Print-URI Operation" + OPERATION Print-URI + GROUP operation-attributes-tag + ATTR charset attributes-charset utf-8 + ATTR naturalLanguage attributes-natural-language en + ATTR uri printer-uri $uri + ATTR name requesting-user-name $user + ATTR name job-name $filename + ATTR boolean ipp-attribute-fidelity false + ATTR name document-name $filename + ATTR keyword compression none + ATTR uri document-uri "bogus://bogus" - STATUS client-error-uri-scheme-not-supported + STATUS client-error-uri-scheme-not-supported - EXPECT !job-uri - EXPECT !job-id - EXPECT !job-state - EXPECT !job-state-reasons - EXPECT !job-state-message + EXPECT !job-uri + EXPECT !job-id + EXPECT !job-state + EXPECT !job-state-reasons + EXPECT !job-state-message } @@ -988,177 +983,174 @@ DEFINE IPP_URI_SCHEME "/^ipps?://.+$$/" # # Defined by: RFC 8011 section 4.2.4 and 4.3.1 { - SKIP-IF-NOT-DEFINED OPTIONAL_CREATE_JOB - SKIP-IF-NOT-DEFINED OPTIONAL_SEND_DOCUMENT - - NAME "RFC 8011 section 4.2.4: Create-Job Operation" - OPERATION Create-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR name job-name $filename - ATTR boolean ipp-attribute-fidelity false - - STATUS successful-ok - - EXPECT job-uri OF-TYPE uri COUNT 1 IN-GROUP job-attributes-tag WITH-VALUE "$IPP_URI_SCHEME" - EXPECT job-id OF-TYPE integer COUNT 1 IN-GROUP job-attributes-tag - WITH-VALUE >0 - EXPECT job-state OF-TYPE unknown|enum COUNT 1 IN-GROUP job-attributes-tag - WITH-VALUE 3,4,5,6,7,8,9 - EXPECT job-state-reasons OF-TYPE keyword IN-GROUP job-attributes-tag - EXPECT ?job-state-message OF-TYPE text IN-GROUP job-attributes-tag - EXPECT ?number-of-intervening-jobs OF-TYPE integer - IN-GROUP job-attributes-tag WITH-VALUE >-1 -} - -{ - SKIP-IF-NOT-DEFINED OPTIONAL_CREATE_JOB - SKIP-IF-NOT-DEFINED OPTIONAL_SEND_DOCUMENT - SKIP-PREVIOUS-ERROR yes - - NAME "RFC 8011 section 4.3.1: Send-Document Operation" - OPERATION Send-Document - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR integer job-id $job-id - ATTR name requesting-user-name $user - ATTR boolean last-document true - ATTR name document-name $filename - ATTR keyword compression none - ATTR mimeMediaType document-format $filetype - FILE $filename - - STATUS successful-ok - STATUS client-error-document-format-not-supported - STATUS server-error-job-canceled + SKIP-IF-NOT-DEFINED OPTIONAL_CREATE_JOB + SKIP-IF-NOT-DEFINED OPTIONAL_SEND_DOCUMENT + + NAME "RFC 8011 section 4.2.4: Create-Job Operation" + OPERATION Create-Job + GROUP operation-attributes-tag + ATTR charset attributes-charset utf-8 + ATTR naturalLanguage attributes-natural-language en + ATTR uri printer-uri $uri + ATTR name requesting-user-name $user + ATTR name job-name $filename + ATTR boolean ipp-attribute-fidelity false + + STATUS successful-ok + STATUS server-error-busy REPEAT-MATCH REPEAT-LIMIT 30 + + EXPECT job-uri OF-TYPE uri COUNT 1 IN-GROUP job-attributes-tag WITH-VALUE "$IPP_URI_SCHEME" + EXPECT job-id OF-TYPE integer COUNT 1 IN-GROUP job-attributes-tag WITH-VALUE >0 + EXPECT job-state OF-TYPE unknown|enum COUNT 1 IN-GROUP job-attributes-tag WITH-VALUE 3,4,5,6,7,8,9 + EXPECT job-state-reasons OF-TYPE keyword IN-GROUP job-attributes-tag + EXPECT ?job-state-message OF-TYPE text IN-GROUP job-attributes-tag + EXPECT ?number-of-intervening-jobs OF-TYPE integer + IN-GROUP job-attributes-tag WITH-VALUE >-1 +} + +{ + SKIP-IF-NOT-DEFINED OPTIONAL_CREATE_JOB + SKIP-IF-NOT-DEFINED OPTIONAL_SEND_DOCUMENT + SKIP-PREVIOUS-ERROR yes + + NAME "RFC 8011 section 4.3.1: Send-Document Operation" + OPERATION Send-Document + GROUP operation-attributes-tag + ATTR charset attributes-charset utf-8 + ATTR naturalLanguage attributes-natural-language en + ATTR uri printer-uri $uri + ATTR integer job-id $job-id + ATTR name requesting-user-name $user + ATTR boolean last-document true + ATTR name document-name $filename + ATTR keyword compression none + ATTR mimeMediaType document-format $filetype + FILE $filename + + STATUS successful-ok + STATUS client-error-document-format-not-supported + STATUS server-error-job-canceled } # Test Create-Job and Send-Document operations (no last-document) # # Defined by: RFC 8011 section 4.2.4 and 4.3.1 { - SKIP-IF-NOT-DEFINED OPTIONAL_CREATE_JOB - SKIP-IF-NOT-DEFINED OPTIONAL_SEND_DOCUMENT + SKIP-IF-NOT-DEFINED OPTIONAL_CREATE_JOB + SKIP-IF-NOT-DEFINED OPTIONAL_SEND_DOCUMENT - NAME "Send-Document missing last-document: Create-Job Operation" - OPERATION Create-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR name job-name $filename - ATTR boolean ipp-attribute-fidelity false + NAME "Send-Document missing last-document: Create-Job Operation" + OPERATION Create-Job + GROUP operation-attributes-tag + ATTR charset attributes-charset utf-8 + ATTR naturalLanguage attributes-natural-language en + ATTR uri printer-uri $uri + ATTR name requesting-user-name $user + ATTR name job-name $filename + ATTR boolean ipp-attribute-fidelity false - STATUS successful-ok + STATUS successful-ok + STATUS server-error-busy REPEAT-MATCH REPEAT-LIMIT 30 - EXPECT job-uri OF-TYPE uri COUNT 1 IN-GROUP job-attributes-tag WITH-VALUE "$IPP_URI_SCHEME" - EXPECT job-id OF-TYPE integer COUNT 1 IN-GROUP job-attributes-tag - WITH-VALUE >0 - EXPECT job-state OF-TYPE unknown|enum COUNT 1 IN-GROUP job-attributes-tag - WITH-VALUE 3,4,5,6,7,8,9 - EXPECT job-state-reasons OF-TYPE keyword IN-GROUP job-attributes-tag - EXPECT ?job-state-message OF-TYPE text IN-GROUP job-attributes-tag - EXPECT ?number-of-intervening-jobs OF-TYPE integer - IN-GROUP job-attributes-tag WITH-VALUE >-1 + EXPECT job-uri OF-TYPE uri COUNT 1 IN-GROUP job-attributes-tag WITH-VALUE "$IPP_URI_SCHEME" + EXPECT job-id OF-TYPE integer COUNT 1 IN-GROUP job-attributes-tag WITH-VALUE >0 + EXPECT job-state OF-TYPE unknown|enum COUNT 1 IN-GROUP job-attributes-tag WITH-VALUE 3,4,5,6,7,8,9 + EXPECT job-state-reasons OF-TYPE keyword IN-GROUP job-attributes-tag + EXPECT ?job-state-message OF-TYPE text IN-GROUP job-attributes-tag + EXPECT ?number-of-intervening-jobs OF-TYPE integer + IN-GROUP job-attributes-tag WITH-VALUE >-1 } { - SKIP-IF-NOT-DEFINED OPTIONAL_CREATE_JOB - SKIP-IF-NOT-DEFINED OPTIONAL_SEND_DOCUMENT - SKIP-PREVIOUS-ERROR yes + SKIP-IF-NOT-DEFINED OPTIONAL_CREATE_JOB + SKIP-IF-NOT-DEFINED OPTIONAL_SEND_DOCUMENT + SKIP-PREVIOUS-ERROR yes - NAME "Send-Document missing last-document: Send-Document Operation" - OPERATION Send-Document - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR integer job-id $job-id - ATTR name requesting-user-name $user - ATTR name document-name $filename - ATTR keyword compression none - ATTR mimeMediaType document-format $filetype - FILE $filename + NAME "Send-Document missing last-document: Send-Document Operation" + OPERATION Send-Document + GROUP operation-attributes-tag + ATTR charset attributes-charset utf-8 + ATTR naturalLanguage attributes-natural-language en + ATTR uri printer-uri $uri + ATTR integer job-id $job-id + ATTR name requesting-user-name $user + ATTR name document-name $filename + ATTR keyword compression none + ATTR mimeMediaType document-format $filetype + FILE $filename - STATUS client-error-bad-request + STATUS client-error-bad-request } { - SKIP-IF-NOT-DEFINED OPTIONAL_CREATE_JOB - SKIP-IF-NOT-DEFINED OPTIONAL_SEND_DOCUMENT - SKIP-PREVIOUS-ERROR yes + SKIP-IF-NOT-DEFINED OPTIONAL_CREATE_JOB + SKIP-IF-NOT-DEFINED OPTIONAL_SEND_DOCUMENT + SKIP-PREVIOUS-ERROR yes - NAME "RFC 8011 section 4.3.3: Cancel-Job Operation" - OPERATION Cancel-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR integer job-id $job-id - ATTR name requesting-user-name $user + NAME "RFC 8011 section 4.3.3: Cancel-Job Operation" + OPERATION Cancel-Job + GROUP operation-attributes-tag + ATTR charset attributes-charset utf-8 + ATTR naturalLanguage attributes-natural-language en + ATTR uri printer-uri $uri + ATTR integer job-id $job-id + ATTR name requesting-user-name $user - STATUS successful-ok - STATUS server-error-job-canceled + STATUS successful-ok + STATUS server-error-job-canceled } # Test Create-Job and Send-URI operations # # Defined by: RFC 8011 section 4.2.4 and 4.3.2 { - SKIP-IF-NOT-DEFINED OPTIONAL_CREATE_JOB - SKIP-IF-NOT-DEFINED OPTIONAL_SEND_URI - SKIP-IF-NOT-DEFINED document-uri - - NAME "RFC 8011 section 4.2.4: Create-Job Operation" - OPERATION Create-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR name job-name $filename - ATTR boolean ipp-attribute-fidelity false - - STATUS successful-ok - - EXPECT job-uri OF-TYPE uri COUNT 1 IN-GROUP job-attributes-tag WITH-VALUE "$IPP_URI_SCHEME" - EXPECT job-id OF-TYPE integer COUNT 1 IN-GROUP job-attributes-tag - WITH-VALUE >0 - EXPECT job-state OF-TYPE unknown|enum COUNT 1 IN-GROUP job-attributes-tag - WITH-VALUE 3,4,5,6,7,8,9 - EXPECT job-state-reasons OF-TYPE keyword IN-GROUP job-attributes-tag - EXPECT ?job-state-message OF-TYPE text IN-GROUP job-attributes-tag - EXPECT ?number-of-intervening-jobs OF-TYPE integer - IN-GROUP job-attributes-tag WITH-VALUE >-1 -} - -{ - SKIP-IF-NOT-DEFINED OPTIONAL_CREATE_JOB - SKIP-IF-NOT-DEFINED OPTIONAL_SEND_URI - SKIP-IF-NOT-DEFINED document-uri - SKIP-PREVIOUS-ERROR yes - - NAME "RFC 8011 section 4.3.2: Send-URI Operation" - OPERATION Send-URI - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR integer job-id $job-id - ATTR name requesting-user-name $user - ATTR boolean last-document true - ATTR name document-name $filename - ATTR keyword compression none - ATTR uri document-uri $document-uri - - STATUS successful-ok - STATUS server-error-job-canceled + SKIP-IF-NOT-DEFINED OPTIONAL_CREATE_JOB + SKIP-IF-NOT-DEFINED OPTIONAL_SEND_URI + SKIP-IF-NOT-DEFINED document-uri + + NAME "RFC 8011 section 4.2.4: Create-Job Operation" + OPERATION Create-Job + GROUP operation-attributes-tag + ATTR charset attributes-charset utf-8 + ATTR naturalLanguage attributes-natural-language en + ATTR uri printer-uri $uri + ATTR name requesting-user-name $user + ATTR name job-name $filename + ATTR boolean ipp-attribute-fidelity false + + STATUS successful-ok + STATUS server-error-busy REPEAT-MATCH REPEAT-LIMIT 30 + + EXPECT job-uri OF-TYPE uri COUNT 1 IN-GROUP job-attributes-tag WITH-VALUE "$IPP_URI_SCHEME" + EXPECT job-id OF-TYPE integer COUNT 1 IN-GROUP job-attributes-tag WITH-VALUE >0 + EXPECT job-state OF-TYPE unknown|enum COUNT 1 IN-GROUP job-attributes-tag WITH-VALUE 3,4,5,6,7,8,9 + EXPECT job-state-reasons OF-TYPE keyword IN-GROUP job-attributes-tag + EXPECT ?job-state-message OF-TYPE text IN-GROUP job-attributes-tag + EXPECT ?number-of-intervening-jobs OF-TYPE integer + IN-GROUP job-attributes-tag WITH-VALUE >-1 +} + +{ + SKIP-IF-NOT-DEFINED OPTIONAL_CREATE_JOB + SKIP-IF-NOT-DEFINED OPTIONAL_SEND_URI + SKIP-IF-NOT-DEFINED document-uri + SKIP-PREVIOUS-ERROR yes + + NAME "RFC 8011 section 4.3.2: Send-URI Operation" + OPERATION Send-URI + GROUP operation-attributes-tag + ATTR charset attributes-charset utf-8 + ATTR naturalLanguage attributes-natural-language en + ATTR uri printer-uri $uri + ATTR integer job-id $job-id + ATTR name requesting-user-name $user + ATTR boolean last-document true + ATTR name document-name $filename + ATTR keyword compression none + ATTR uri document-uri $document-uri + + STATUS successful-ok + STATUS server-error-job-canceled } @@ -1166,1175 +1158,1116 @@ DEFINE IPP_URI_SCHEME "/^ipps?://.+$$/" # # Defined by: RFC 8011 section 4.2.4 and 4.3.2 { - SKIP-IF-NOT-DEFINED OPTIONAL_CREATE_JOB - SKIP-IF-NOT-DEFINED OPTIONAL_SEND_URI + SKIP-IF-NOT-DEFINED OPTIONAL_CREATE_JOB + SKIP-IF-NOT-DEFINED OPTIONAL_SEND_URI - NAME "Send-URI with bad URI: Create-Job Operation" - OPERATION Create-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR name job-name $filename - ATTR boolean ipp-attribute-fidelity false + NAME "Send-URI with bad URI: Create-Job Operation" + OPERATION Create-Job + GROUP operation-attributes-tag + ATTR charset attributes-charset utf-8 + ATTR naturalLanguage attributes-natural-language en + ATTR uri printer-uri $uri + ATTR name requesting-user-name $user + ATTR name job-name $filename + ATTR boolean ipp-attribute-fidelity false - STATUS successful-ok + STATUS successful-ok + STATUS server-error-busy REPEAT-MATCH REPEAT-LIMIT 30 - EXPECT job-uri OF-TYPE uri COUNT 1 IN-GROUP job-attributes-tag WITH-VALUE "$IPP_URI_SCHEME" - EXPECT job-id OF-TYPE integer COUNT 1 IN-GROUP job-attributes-tag - WITH-VALUE >0 - EXPECT job-state OF-TYPE unknown|enum COUNT 1 IN-GROUP job-attributes-tag - WITH-VALUE 3,4,5,6,7,8,9 - EXPECT job-state-reasons OF-TYPE keyword IN-GROUP job-attributes-tag - EXPECT ?job-state-message OF-TYPE text IN-GROUP job-attributes-tag - EXPECT ?number-of-intervening-jobs OF-TYPE integer - IN-GROUP job-attributes-tag WITH-VALUE >-1 + EXPECT job-uri OF-TYPE uri COUNT 1 IN-GROUP job-attributes-tag WITH-VALUE "$IPP_URI_SCHEME" + EXPECT job-id OF-TYPE integer COUNT 1 IN-GROUP job-attributes-tag WITH-VALUE >0 + EXPECT job-state OF-TYPE unknown|enum COUNT 1 IN-GROUP job-attributes-tag WITH-VALUE 3,4,5,6,7,8,9 + EXPECT job-state-reasons OF-TYPE keyword IN-GROUP job-attributes-tag + EXPECT ?job-state-message OF-TYPE text IN-GROUP job-attributes-tag + EXPECT ?number-of-intervening-jobs OF-TYPE integer + IN-GROUP job-attributes-tag WITH-VALUE >-1 } { - SKIP-IF-NOT-DEFINED OPTIONAL_CREATE_JOB - SKIP-IF-NOT-DEFINED OPTIONAL_SEND_URI - SKIP-IF-NOT-DEFINED document-uri - SKIP-PREVIOUS-ERROR yes + SKIP-IF-NOT-DEFINED OPTIONAL_CREATE_JOB + SKIP-IF-NOT-DEFINED OPTIONAL_SEND_URI + SKIP-IF-NOT-DEFINED document-uri + SKIP-PREVIOUS-ERROR yes - NAME "Send-URI with bad URI: Send-URI Operation (bad URI)" - OPERATION Send-URI - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR integer job-id $job-id - ATTR name requesting-user-name $user - ATTR boolean last-document true - ATTR name document-name $filename - ATTR keyword compression none - ATTR mimeMediaType document-format $filetype - ATTR uri document-uri "bogus://bogus" + NAME "Send-URI with bad URI: Send-URI Operation (bad URI)" + OPERATION Send-URI + GROUP operation-attributes-tag + ATTR charset attributes-charset utf-8 + ATTR naturalLanguage attributes-natural-language en + ATTR uri printer-uri $uri + ATTR integer job-id $job-id + ATTR name requesting-user-name $user + ATTR boolean last-document true + ATTR name document-name $filename + ATTR keyword compression none + ATTR mimeMediaType document-format $filetype + ATTR uri document-uri "bogus://bogus" - STATUS client-error-uri-scheme-not-supported + STATUS client-error-uri-scheme-not-supported } { - SKIP-IF-NOT-DEFINED OPTIONAL_CREATE_JOB - SKIP-IF-NOT-DEFINED OPTIONAL_SEND_URI - SKIP-PREVIOUS-ERROR yes + SKIP-IF-NOT-DEFINED OPTIONAL_CREATE_JOB + SKIP-IF-NOT-DEFINED OPTIONAL_SEND_URI + SKIP-PREVIOUS-ERROR yes - NAME "Send-URI with bad URI: Cancel-Job Operation" - OPERATION Cancel-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR integer job-id $job-id - ATTR name requesting-user-name $user + NAME "Send-URI with bad URI: Cancel-Job Operation" + OPERATION Cancel-Job + GROUP operation-attributes-tag + ATTR charset attributes-charset utf-8 + ATTR naturalLanguage attributes-natural-language en + ATTR uri printer-uri $uri + ATTR integer job-id $job-id + ATTR name requesting-user-name $user - STATUS successful-ok - STATUS server-error-job-canceled + STATUS successful-ok + STATUS server-error-job-canceled } # Test multiple copy output { - SKIP-IF-NOT-DEFINED OPTIONAL_COPIES - - NAME "Print-Job with copies" - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR name job-name $filename - ATTR boolean ipp-attribute-fidelity false - ATTR name document-name $filename - ATTR keyword compression none - ATTR mimeMediaType document-format $filetype - GROUP job-attributes-tag - ATTR integer copies 2 - FILE $filename - - STATUS successful-ok - STATUS client-error-document-format-not-supported - STATUS server-error-job-canceled - STATUS server-error-busy REPEAT-MATCH REPEAT-LIMIT 30 - - EXPECT job-uri OF-TYPE uri COUNT 1 IN-GROUP job-attributes-tag WITH-VALUE "$IPP_URI_SCHEME" - EXPECT job-id OF-TYPE integer COUNT 1 IN-GROUP job-attributes-tag - WITH-VALUE >0 - EXPECT job-state OF-TYPE unknown|enum COUNT 1 IN-GROUP job-attributes-tag - WITH-VALUE 3,4,5,6,7,8,9 - EXPECT job-state-reasons OF-TYPE keyword IN-GROUP job-attributes-tag - EXPECT ?job-state-message OF-TYPE text IN-GROUP job-attributes-tag - EXPECT ?number-of-intervening-jobs OF-TYPE integer - IN-GROUP job-attributes-tag WITH-VALUE >-1 + SKIP-IF-NOT-DEFINED OPTIONAL_COPIES + + NAME "Print-Job with copies" + OPERATION Print-Job + GROUP operation-attributes-tag + ATTR charset attributes-charset utf-8 + ATTR naturalLanguage attributes-natural-language en + ATTR uri printer-uri $uri + ATTR name requesting-user-name $user + ATTR name job-name $filename + ATTR boolean ipp-attribute-fidelity false + ATTR name document-name $filename + ATTR keyword compression none + ATTR mimeMediaType document-format $filetype + GROUP job-attributes-tag + ATTR integer copies 2 + FILE $filename + + STATUS successful-ok + STATUS client-error-document-format-not-supported + STATUS server-error-job-canceled + STATUS server-error-busy REPEAT-MATCH REPEAT-LIMIT 30 + + EXPECT job-uri OF-TYPE uri COUNT 1 IN-GROUP job-attributes-tag WITH-VALUE "$IPP_URI_SCHEME" + EXPECT job-id OF-TYPE integer COUNT 1 IN-GROUP job-attributes-tag WITH-VALUE >0 + EXPECT job-state OF-TYPE unknown|enum COUNT 1 IN-GROUP job-attributes-tag WITH-VALUE 3,4,5,6,7,8,9 + EXPECT job-state-reasons OF-TYPE keyword IN-GROUP job-attributes-tag + EXPECT ?job-state-message OF-TYPE text IN-GROUP job-attributes-tag + EXPECT ?number-of-intervening-jobs OF-TYPE integer + IN-GROUP job-attributes-tag WITH-VALUE >-1 } # Test PDF output { - SKIP-IF-DEFINED NOPRINT - SKIP-IF-NOT-DEFINED OPTIONAL_PDF - SKIP-IF-NOT-DEFINED OPTIONAL_A4_MEDIA - - NAME "Print-Job with A4 PDF" - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR name job-name "A4 Test Document" - ATTR boolean ipp-attribute-fidelity false - ATTR name document-name document-a4.pdf - ATTR keyword compression none - ATTR mimeMediaType document-format application/pdf - GROUP job-attributes-tag - ATTR keyword media $OPTIONAL_A4_MEDIA - FILE document-a4.pdf - - STATUS successful-ok - STATUS server-error-job-canceled - STATUS server-error-busy REPEAT-MATCH REPEAT-LIMIT 30 - - EXPECT job-uri OF-TYPE uri COUNT 1 IN-GROUP job-attributes-tag WITH-VALUE "$IPP_URI_SCHEME" - EXPECT job-id OF-TYPE integer COUNT 1 IN-GROUP job-attributes-tag - WITH-VALUE >0 - EXPECT job-state OF-TYPE unknown|enum COUNT 1 IN-GROUP job-attributes-tag - WITH-VALUE 3,4,5,6,7,8,9 - EXPECT job-state-reasons OF-TYPE keyword IN-GROUP job-attributes-tag - EXPECT ?job-state-message OF-TYPE text IN-GROUP job-attributes-tag - EXPECT ?number-of-intervening-jobs OF-TYPE integer - IN-GROUP job-attributes-tag WITH-VALUE >-1 -} - -{ - SKIP-IF-DEFINED NOPRINT - SKIP-IF-NOT-DEFINED OPTIONAL_PDF - SKIP-IF-NOT-DEFINED OPTIONAL_A4_MEDIA - SKIP-IF-NOT-DEFINED OPTIONAL_DUPLEX - - NAME "Print-Job with A4 PDF, Duplex" - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR name job-name "A4 Test Document, Duplex" - ATTR boolean ipp-attribute-fidelity false - ATTR name document-name document-a4.pdf - ATTR keyword compression none - ATTR mimeMediaType document-format application/pdf - GROUP job-attributes-tag - ATTR keyword media $OPTIONAL_A4_MEDIA - ATTR keyword sides two-sided-long-edge - FILE document-a4.pdf - - STATUS successful-ok - STATUS server-error-job-canceled - STATUS server-error-busy REPEAT-MATCH REPEAT-LIMIT 30 - - EXPECT job-uri OF-TYPE uri COUNT 1 IN-GROUP job-attributes-tag WITH-VALUE "$IPP_URI_SCHEME" - EXPECT job-id OF-TYPE integer COUNT 1 IN-GROUP job-attributes-tag - WITH-VALUE >0 - EXPECT job-state OF-TYPE unknown|enum COUNT 1 IN-GROUP job-attributes-tag - WITH-VALUE 3,4,5,6,7,8,9 - EXPECT job-state-reasons OF-TYPE keyword IN-GROUP job-attributes-tag - EXPECT ?job-state-message OF-TYPE text IN-GROUP job-attributes-tag - EXPECT ?number-of-intervening-jobs OF-TYPE integer - IN-GROUP job-attributes-tag WITH-VALUE >-1 -} - -{ - SKIP-IF-DEFINED NOPRINT - SKIP-IF-NOT-DEFINED OPTIONAL_PDF - SKIP-IF-NOT-DEFINED OPTIONAL_LETTER_MEDIA - - NAME "Print-Job with US Letter PDF" - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR name job-name "US Letter Test Document" - ATTR boolean ipp-attribute-fidelity false - ATTR name document-name document-letter.pdf - ATTR keyword compression none - ATTR mimeMediaType document-format application/pdf - GROUP job-attributes-tag - ATTR keyword media $OPTIONAL_LETTER_MEDIA - FILE document-letter.pdf - - STATUS successful-ok - STATUS server-error-job-canceled - STATUS server-error-busy REPEAT-MATCH REPEAT-LIMIT 30 - - EXPECT job-uri OF-TYPE uri COUNT 1 IN-GROUP job-attributes-tag WITH-VALUE "$IPP_URI_SCHEME" - EXPECT job-id OF-TYPE integer COUNT 1 IN-GROUP job-attributes-tag - WITH-VALUE >0 - EXPECT job-state OF-TYPE unknown|enum COUNT 1 IN-GROUP job-attributes-tag - WITH-VALUE 3,4,5,6,7,8,9 - EXPECT job-state-reasons OF-TYPE keyword IN-GROUP job-attributes-tag - EXPECT ?job-state-message OF-TYPE text IN-GROUP job-attributes-tag - EXPECT ?number-of-intervening-jobs OF-TYPE integer - IN-GROUP job-attributes-tag WITH-VALUE >-1 -} - -{ - SKIP-IF-DEFINED NOPRINT - SKIP-IF-NOT-DEFINED OPTIONAL_PDF - SKIP-IF-NOT-DEFINED OPTIONAL_LETTER_MEDIA - SKIP-IF-NOT-DEFINED OPTIONAL_DUPLEX - - NAME "Print-Job with US Letter PDF, Duplex" - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR name job-name "US Letter Test Document, Duplex" - ATTR boolean ipp-attribute-fidelity false - ATTR name document-name document-letter.pdf - ATTR keyword compression none - ATTR mimeMediaType document-format application/pdf - GROUP job-attributes-tag - ATTR keyword media $OPTIONAL_LETTER_MEDIA - ATTR keyword sides two-sided-long-edge - FILE document-letter.pdf - - STATUS successful-ok - STATUS server-error-job-canceled - STATUS server-error-busy REPEAT-MATCH REPEAT-LIMIT 30 - - EXPECT job-uri OF-TYPE uri COUNT 1 IN-GROUP job-attributes-tag WITH-VALUE "$IPP_URI_SCHEME" - EXPECT job-id OF-TYPE integer COUNT 1 IN-GROUP job-attributes-tag - WITH-VALUE >0 - EXPECT job-state OF-TYPE unknown|enum COUNT 1 IN-GROUP job-attributes-tag - WITH-VALUE 3,4,5,6,7,8,9 - EXPECT job-state-reasons OF-TYPE keyword IN-GROUP job-attributes-tag - EXPECT ?job-state-message OF-TYPE text IN-GROUP job-attributes-tag - EXPECT ?number-of-intervening-jobs OF-TYPE integer - IN-GROUP job-attributes-tag WITH-VALUE >-1 + SKIP-IF-DEFINED NOPRINT + SKIP-IF-NOT-DEFINED OPTIONAL_PDF + SKIP-IF-NOT-DEFINED OPTIONAL_A4_MEDIA + + NAME "Print-Job with A4 PDF" + OPERATION Print-Job + GROUP operation-attributes-tag + ATTR charset attributes-charset utf-8 + ATTR naturalLanguage attributes-natural-language en + ATTR uri printer-uri $uri + ATTR name requesting-user-name $user + ATTR name job-name "A4 Test Document" + ATTR boolean ipp-attribute-fidelity false + ATTR name document-name document-a4.pdf + ATTR keyword compression none + ATTR mimeMediaType document-format application/pdf + GROUP job-attributes-tag + ATTR keyword media $OPTIONAL_A4_MEDIA + FILE document-a4.pdf + + STATUS successful-ok + STATUS server-error-job-canceled + STATUS server-error-busy REPEAT-MATCH REPEAT-LIMIT 30 + + EXPECT job-uri OF-TYPE uri COUNT 1 IN-GROUP job-attributes-tag WITH-VALUE "$IPP_URI_SCHEME" + EXPECT job-id OF-TYPE integer COUNT 1 IN-GROUP job-attributes-tag WITH-VALUE >0 + EXPECT job-state OF-TYPE unknown|enum COUNT 1 IN-GROUP job-attributes-tag WITH-VALUE 3,4,5,6,7,8,9 + EXPECT job-state-reasons OF-TYPE keyword IN-GROUP job-attributes-tag + EXPECT ?job-state-message OF-TYPE text IN-GROUP job-attributes-tag + EXPECT ?number-of-intervening-jobs OF-TYPE integer + IN-GROUP job-attributes-tag WITH-VALUE >-1 +} + +{ + SKIP-IF-DEFINED NOPRINT + SKIP-IF-NOT-DEFINED OPTIONAL_PDF + SKIP-IF-NOT-DEFINED OPTIONAL_A4_MEDIA + SKIP-IF-NOT-DEFINED OPTIONAL_DUPLEX + + NAME "Print-Job with A4 PDF, Duplex" + OPERATION Print-Job + GROUP operation-attributes-tag + ATTR charset attributes-charset utf-8 + ATTR naturalLanguage attributes-natural-language en + ATTR uri printer-uri $uri + ATTR name requesting-user-name $user + ATTR name job-name "A4 Test Document, Duplex" + ATTR boolean ipp-attribute-fidelity false + ATTR name document-name document-a4.pdf + ATTR keyword compression none + ATTR mimeMediaType document-format application/pdf + GROUP job-attributes-tag + ATTR keyword media $OPTIONAL_A4_MEDIA + ATTR keyword sides two-sided-long-edge + FILE document-a4.pdf + + STATUS successful-ok + STATUS server-error-job-canceled + STATUS server-error-busy REPEAT-MATCH REPEAT-LIMIT 30 + + EXPECT job-uri OF-TYPE uri COUNT 1 IN-GROUP job-attributes-tag WITH-VALUE "$IPP_URI_SCHEME" + EXPECT job-id OF-TYPE integer COUNT 1 IN-GROUP job-attributes-tag WITH-VALUE >0 + EXPECT job-state OF-TYPE unknown|enum COUNT 1 IN-GROUP job-attributes-tag WITH-VALUE 3,4,5,6,7,8,9 + EXPECT job-state-reasons OF-TYPE keyword IN-GROUP job-attributes-tag + EXPECT ?job-state-message OF-TYPE text IN-GROUP job-attributes-tag + EXPECT ?number-of-intervening-jobs OF-TYPE integer + IN-GROUP job-attributes-tag WITH-VALUE >-1 +} + +{ + SKIP-IF-DEFINED NOPRINT + SKIP-IF-NOT-DEFINED OPTIONAL_PDF + SKIP-IF-NOT-DEFINED OPTIONAL_LETTER_MEDIA + + NAME "Print-Job with US Letter PDF" + OPERATION Print-Job + GROUP operation-attributes-tag + ATTR charset attributes-charset utf-8 + ATTR naturalLanguage attributes-natural-language en + ATTR uri printer-uri $uri + ATTR name requesting-user-name $user + ATTR name job-name "US Letter Test Document" + ATTR boolean ipp-attribute-fidelity false + ATTR name document-name document-letter.pdf + ATTR keyword compression none + ATTR mimeMediaType document-format application/pdf + GROUP job-attributes-tag + ATTR keyword media $OPTIONAL_LETTER_MEDIA + FILE document-letter.pdf + + STATUS successful-ok + STATUS server-error-job-canceled + STATUS server-error-busy REPEAT-MATCH REPEAT-LIMIT 30 + + EXPECT job-uri OF-TYPE uri COUNT 1 IN-GROUP job-attributes-tag WITH-VALUE "$IPP_URI_SCHEME" + EXPECT job-id OF-TYPE integer COUNT 1 IN-GROUP job-attributes-tag WITH-VALUE >0 + EXPECT job-state OF-TYPE unknown|enum COUNT 1 IN-GROUP job-attributes-tag WITH-VALUE 3,4,5,6,7,8,9 + EXPECT job-state-reasons OF-TYPE keyword IN-GROUP job-attributes-tag + EXPECT ?job-state-message OF-TYPE text IN-GROUP job-attributes-tag + EXPECT ?number-of-intervening-jobs OF-TYPE integer + IN-GROUP job-attributes-tag WITH-VALUE >-1 +} + +{ + SKIP-IF-DEFINED NOPRINT + SKIP-IF-NOT-DEFINED OPTIONAL_PDF + SKIP-IF-NOT-DEFINED OPTIONAL_LETTER_MEDIA + SKIP-IF-NOT-DEFINED OPTIONAL_DUPLEX + + NAME "Print-Job with US Letter PDF, Duplex" + OPERATION Print-Job + GROUP operation-attributes-tag + ATTR charset attributes-charset utf-8 + ATTR naturalLanguage attributes-natural-language en + ATTR uri printer-uri $uri + ATTR name requesting-user-name $user + ATTR name job-name "US Letter Test Document, Duplex" + ATTR boolean ipp-attribute-fidelity false + ATTR name document-name document-letter.pdf + ATTR keyword compression none + ATTR mimeMediaType document-format application/pdf + GROUP job-attributes-tag + ATTR keyword media $OPTIONAL_LETTER_MEDIA + ATTR keyword sides two-sided-long-edge + FILE document-letter.pdf + + STATUS successful-ok + STATUS server-error-job-canceled + STATUS server-error-busy REPEAT-MATCH REPEAT-LIMIT 30 + + EXPECT job-uri OF-TYPE uri COUNT 1 IN-GROUP job-attributes-tag WITH-VALUE "$IPP_URI_SCHEME" + EXPECT job-id OF-TYPE integer COUNT 1 IN-GROUP job-attributes-tag WITH-VALUE >0 + EXPECT job-state OF-TYPE unknown|enum COUNT 1 IN-GROUP job-attributes-tag WITH-VALUE 3,4,5,6,7,8,9 + EXPECT job-state-reasons OF-TYPE keyword IN-GROUP job-attributes-tag + EXPECT ?job-state-message OF-TYPE text IN-GROUP job-attributes-tag + EXPECT ?number-of-intervening-jobs OF-TYPE integer + IN-GROUP job-attributes-tag WITH-VALUE >-1 } # Test PostScript output { - SKIP-IF-DEFINED NOPRINT - SKIP-IF-NOT-DEFINED OPTIONAL_POSTSCRIPT - SKIP-IF-NOT-DEFINED OPTIONAL_A4_MEDIA - - NAME "Print-Job with A4 PostScript" - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR name job-name "A4 Test Document, Duplex" - ATTR boolean ipp-attribute-fidelity false - ATTR name document-name document-a4.ps - ATTR keyword compression none - ATTR mimeMediaType document-format application/postscript - GROUP job-attributes-tag - ATTR keyword media $OPTIONAL_LETTER_MEDIA - FILE document-a4.ps - - STATUS successful-ok - STATUS server-error-job-canceled - STATUS server-error-busy REPEAT-MATCH REPEAT-LIMIT 30 - - EXPECT job-uri OF-TYPE uri COUNT 1 IN-GROUP job-attributes-tag WITH-VALUE "$IPP_URI_SCHEME" - EXPECT job-id OF-TYPE integer COUNT 1 IN-GROUP job-attributes-tag - WITH-VALUE >0 - EXPECT job-state OF-TYPE unknown|enum COUNT 1 IN-GROUP job-attributes-tag - WITH-VALUE 3,4,5,6,7,8,9 - EXPECT job-state-reasons OF-TYPE keyword IN-GROUP job-attributes-tag - EXPECT ?job-state-message OF-TYPE text IN-GROUP job-attributes-tag - EXPECT ?number-of-intervening-jobs OF-TYPE integer - IN-GROUP job-attributes-tag WITH-VALUE >-1 -} - -{ - SKIP-IF-DEFINED NOPRINT - SKIP-IF-NOT-DEFINED OPTIONAL_POSTSCRIPT - SKIP-IF-NOT-DEFINED OPTIONAL_A4_MEDIA - SKIP-IF-NOT-DEFINED OPTIONAL_DUPLEX - - NAME "Print-Job with A4 PostScript, Duplex" - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR name job-name "US Letter Test Document" - ATTR boolean ipp-attribute-fidelity false - ATTR name document-name document-a4.ps - ATTR keyword compression none - ATTR mimeMediaType document-format application/postscript - GROUP job-attributes-tag - ATTR keyword media $OPTIONAL_A4_MEDIA - ATTR keyword sides two-sided-long-edge - FILE document-a4.ps - - STATUS successful-ok - STATUS server-error-job-canceled - STATUS server-error-busy REPEAT-MATCH REPEAT-LIMIT 30 - - EXPECT job-uri OF-TYPE uri COUNT 1 IN-GROUP job-attributes-tag WITH-VALUE "$IPP_URI_SCHEME" - EXPECT job-id OF-TYPE integer COUNT 1 IN-GROUP job-attributes-tag - WITH-VALUE >0 - EXPECT job-state OF-TYPE unknown|enum COUNT 1 IN-GROUP job-attributes-tag - WITH-VALUE 3,4,5,6,7,8,9 - EXPECT job-state-reasons OF-TYPE keyword IN-GROUP job-attributes-tag - EXPECT ?job-state-message OF-TYPE text IN-GROUP job-attributes-tag - EXPECT ?number-of-intervening-jobs OF-TYPE integer - IN-GROUP job-attributes-tag WITH-VALUE >-1 -} - -{ - SKIP-IF-DEFINED NOPRINT - SKIP-IF-NOT-DEFINED OPTIONAL_POSTSCRIPT - SKIP-IF-NOT-DEFINED OPTIONAL_LETTER_MEDIA - - NAME "Print-Job with US Letter PostScript" - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR name job-name "US Letter Test Document, Duplex" - ATTR boolean ipp-attribute-fidelity false - ATTR name document-name document-letter.ps - ATTR keyword compression none - ATTR mimeMediaType document-format application/postscript - GROUP job-attributes-tag - ATTR keyword media $OPTIONAL_LETTER_MEDIA - FILE document-letter.ps - - STATUS successful-ok - STATUS server-error-job-canceled - STATUS server-error-busy REPEAT-MATCH REPEAT-LIMIT 30 - - EXPECT job-uri OF-TYPE uri COUNT 1 IN-GROUP job-attributes-tag WITH-VALUE "$IPP_URI_SCHEME" - EXPECT job-id OF-TYPE integer COUNT 1 IN-GROUP job-attributes-tag - WITH-VALUE >0 - EXPECT job-state OF-TYPE unknown|enum COUNT 1 IN-GROUP job-attributes-tag - WITH-VALUE 3,4,5,6,7,8,9 - EXPECT job-state-reasons OF-TYPE keyword IN-GROUP job-attributes-tag - EXPECT ?job-state-message OF-TYPE text IN-GROUP job-attributes-tag - EXPECT ?number-of-intervening-jobs OF-TYPE integer - IN-GROUP job-attributes-tag WITH-VALUE >-1 -} - -{ - SKIP-IF-DEFINED NOPRINT - SKIP-IF-NOT-DEFINED OPTIONAL_POSTSCRIPT - SKIP-IF-NOT-DEFINED OPTIONAL_LETTER_MEDIA - SKIP-IF-NOT-DEFINED OPTIONAL_DUPLEX - - NAME "Print-Job with US Letter PostScript, Duplex" - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR name job-name "A4 Test Document" - ATTR boolean ipp-attribute-fidelity false - ATTR name document-name document-letter.ps - ATTR keyword compression none - ATTR mimeMediaType document-format application/postscript - GROUP job-attributes-tag - ATTR keyword media $OPTIONAL_LETTER_MEDIA - ATTR keyword sides two-sided-long-edge - FILE document-letter.ps - - STATUS successful-ok - STATUS server-error-job-canceled - STATUS server-error-busy REPEAT-MATCH REPEAT-LIMIT 30 - - EXPECT job-uri OF-TYPE uri COUNT 1 IN-GROUP job-attributes-tag WITH-VALUE "$IPP_URI_SCHEME" - EXPECT job-id OF-TYPE integer COUNT 1 IN-GROUP job-attributes-tag - WITH-VALUE >0 - EXPECT job-state OF-TYPE unknown|enum COUNT 1 IN-GROUP job-attributes-tag - WITH-VALUE 3,4,5,6,7,8,9 - EXPECT job-state-reasons OF-TYPE keyword IN-GROUP job-attributes-tag - EXPECT ?job-state-message OF-TYPE text IN-GROUP job-attributes-tag - EXPECT ?number-of-intervening-jobs OF-TYPE integer - IN-GROUP job-attributes-tag WITH-VALUE >-1 + SKIP-IF-DEFINED NOPRINT + SKIP-IF-NOT-DEFINED OPTIONAL_POSTSCRIPT + SKIP-IF-NOT-DEFINED OPTIONAL_A4_MEDIA + + NAME "Print-Job with A4 PostScript" + OPERATION Print-Job + GROUP operation-attributes-tag + ATTR charset attributes-charset utf-8 + ATTR naturalLanguage attributes-natural-language en + ATTR uri printer-uri $uri + ATTR name requesting-user-name $user + ATTR name job-name "A4 Test Document, Duplex" + ATTR boolean ipp-attribute-fidelity false + ATTR name document-name document-a4.ps + ATTR keyword compression none + ATTR mimeMediaType document-format application/postscript + GROUP job-attributes-tag + ATTR keyword media $OPTIONAL_LETTER_MEDIA + FILE document-a4.ps + + STATUS successful-ok + STATUS server-error-job-canceled + STATUS server-error-busy REPEAT-MATCH REPEAT-LIMIT 30 + + EXPECT job-uri OF-TYPE uri COUNT 1 IN-GROUP job-attributes-tag WITH-VALUE "$IPP_URI_SCHEME" + EXPECT job-id OF-TYPE integer COUNT 1 IN-GROUP job-attributes-tag WITH-VALUE >0 + EXPECT job-state OF-TYPE unknown|enum COUNT 1 IN-GROUP job-attributes-tag WITH-VALUE 3,4,5,6,7,8,9 + EXPECT job-state-reasons OF-TYPE keyword IN-GROUP job-attributes-tag + EXPECT ?job-state-message OF-TYPE text IN-GROUP job-attributes-tag + EXPECT ?number-of-intervening-jobs OF-TYPE integer + IN-GROUP job-attributes-tag WITH-VALUE >-1 +} + +{ + SKIP-IF-DEFINED NOPRINT + SKIP-IF-NOT-DEFINED OPTIONAL_POSTSCRIPT + SKIP-IF-NOT-DEFINED OPTIONAL_A4_MEDIA + SKIP-IF-NOT-DEFINED OPTIONAL_DUPLEX + + NAME "Print-Job with A4 PostScript, Duplex" + OPERATION Print-Job + GROUP operation-attributes-tag + ATTR charset attributes-charset utf-8 + ATTR naturalLanguage attributes-natural-language en + ATTR uri printer-uri $uri + ATTR name requesting-user-name $user + ATTR name job-name "US Letter Test Document" + ATTR boolean ipp-attribute-fidelity false + ATTR name document-name document-a4.ps + ATTR keyword compression none + ATTR mimeMediaType document-format application/postscript + GROUP job-attributes-tag + ATTR keyword media $OPTIONAL_A4_MEDIA + ATTR keyword sides two-sided-long-edge + FILE document-a4.ps + + STATUS successful-ok + STATUS server-error-job-canceled + STATUS server-error-busy REPEAT-MATCH REPEAT-LIMIT 30 + + EXPECT job-uri OF-TYPE uri COUNT 1 IN-GROUP job-attributes-tag WITH-VALUE "$IPP_URI_SCHEME" + EXPECT job-id OF-TYPE integer COUNT 1 IN-GROUP job-attributes-tag WITH-VALUE >0 + EXPECT job-state OF-TYPE unknown|enum COUNT 1 IN-GROUP job-attributes-tag WITH-VALUE 3,4,5,6,7,8,9 + EXPECT job-state-reasons OF-TYPE keyword IN-GROUP job-attributes-tag + EXPECT ?job-state-message OF-TYPE text IN-GROUP job-attributes-tag + EXPECT ?number-of-intervening-jobs OF-TYPE integer + IN-GROUP job-attributes-tag WITH-VALUE >-1 +} + +{ + SKIP-IF-DEFINED NOPRINT + SKIP-IF-NOT-DEFINED OPTIONAL_POSTSCRIPT + SKIP-IF-NOT-DEFINED OPTIONAL_LETTER_MEDIA + + NAME "Print-Job with US Letter PostScript" + OPERATION Print-Job + GROUP operation-attributes-tag + ATTR charset attributes-charset utf-8 + ATTR naturalLanguage attributes-natural-language en + ATTR uri printer-uri $uri + ATTR name requesting-user-name $user + ATTR name job-name "US Letter Test Document, Duplex" + ATTR boolean ipp-attribute-fidelity false + ATTR name document-name document-letter.ps + ATTR keyword compression none + ATTR mimeMediaType document-format application/postscript + GROUP job-attributes-tag + ATTR keyword media $OPTIONAL_LETTER_MEDIA + FILE document-letter.ps + + STATUS successful-ok + STATUS server-error-job-canceled + STATUS server-error-busy REPEAT-MATCH REPEAT-LIMIT 30 + + EXPECT job-uri OF-TYPE uri COUNT 1 IN-GROUP job-attributes-tag WITH-VALUE "$IPP_URI_SCHEME" + EXPECT job-id OF-TYPE integer COUNT 1 IN-GROUP job-attributes-tag WITH-VALUE >0 + EXPECT job-state OF-TYPE unknown|enum COUNT 1 IN-GROUP job-attributes-tag WITH-VALUE 3,4,5,6,7,8,9 + EXPECT job-state-reasons OF-TYPE keyword IN-GROUP job-attributes-tag + EXPECT ?job-state-message OF-TYPE text IN-GROUP job-attributes-tag + EXPECT ?number-of-intervening-jobs OF-TYPE integer + IN-GROUP job-attributes-tag WITH-VALUE >-1 +} + +{ + SKIP-IF-DEFINED NOPRINT + SKIP-IF-NOT-DEFINED OPTIONAL_POSTSCRIPT + SKIP-IF-NOT-DEFINED OPTIONAL_LETTER_MEDIA + SKIP-IF-NOT-DEFINED OPTIONAL_DUPLEX + + NAME "Print-Job with US Letter PostScript, Duplex" + OPERATION Print-Job + GROUP operation-attributes-tag + ATTR charset attributes-charset utf-8 + ATTR naturalLanguage attributes-natural-language en + ATTR uri printer-uri $uri + ATTR name requesting-user-name $user + ATTR name job-name "A4 Test Document" + ATTR boolean ipp-attribute-fidelity false + ATTR name document-name document-letter.ps + ATTR keyword compression none + ATTR mimeMediaType document-format application/postscript + GROUP job-attributes-tag + ATTR keyword media $OPTIONAL_LETTER_MEDIA + ATTR keyword sides two-sided-long-edge + FILE document-letter.ps + + STATUS successful-ok + STATUS server-error-job-canceled + STATUS server-error-busy REPEAT-MATCH REPEAT-LIMIT 30 + + EXPECT job-uri OF-TYPE uri COUNT 1 IN-GROUP job-attributes-tag WITH-VALUE "$IPP_URI_SCHEME" + EXPECT job-id OF-TYPE integer COUNT 1 IN-GROUP job-attributes-tag WITH-VALUE >0 + EXPECT job-state OF-TYPE unknown|enum COUNT 1 IN-GROUP job-attributes-tag WITH-VALUE 3,4,5,6,7,8,9 + EXPECT job-state-reasons OF-TYPE keyword IN-GROUP job-attributes-tag + EXPECT ?job-state-message OF-TYPE text IN-GROUP job-attributes-tag + EXPECT ?number-of-intervening-jobs OF-TYPE integer + IN-GROUP job-attributes-tag WITH-VALUE >-1 } # Test JPEG output { - SKIP-IF-DEFINED NOPRINT - SKIP-IF-NOT-DEFINED OPTIONAL_JPEG - SKIP-IF-NOT-DEFINED OPTIONAL_A4_MEDIA - - NAME "Print-Job with Color JPEG on A4" - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR name job-name "Color JPEG on A4" - ATTR boolean ipp-attribute-fidelity false - ATTR name document-name color.jpg - ATTR keyword compression none - ATTR mimeMediaType document-format image/jpeg - GROUP job-attributes-tag - ATTR keyword media $OPTIONAL_A4_MEDIA - FILE color.jpg - - STATUS successful-ok - STATUS server-error-job-canceled - STATUS server-error-busy REPEAT-MATCH REPEAT-LIMIT 30 - - EXPECT job-uri OF-TYPE uri COUNT 1 IN-GROUP job-attributes-tag WITH-VALUE "$IPP_URI_SCHEME" - EXPECT job-id OF-TYPE integer COUNT 1 IN-GROUP job-attributes-tag - WITH-VALUE >0 - EXPECT job-state OF-TYPE unknown|enum COUNT 1 IN-GROUP job-attributes-tag - WITH-VALUE 3,4,5,6,7,8,9 - EXPECT job-state-reasons OF-TYPE keyword IN-GROUP job-attributes-tag - EXPECT ?job-state-message OF-TYPE text IN-GROUP job-attributes-tag - EXPECT ?number-of-intervening-jobs OF-TYPE integer - IN-GROUP job-attributes-tag WITH-VALUE >-1 -} - -{ - SKIP-IF-DEFINED NOPRINT - SKIP-IF-NOT-DEFINED OPTIONAL_JPEG - SKIP-IF-NOT-DEFINED OPTIONAL_LETTER_MEDIA - - NAME "Print-Job with Color JPEG on US Letter" - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR name job-name "Color JPEG on US Letter" - ATTR boolean ipp-attribute-fidelity false - ATTR name document-name color.jpg - ATTR keyword compression none - ATTR mimeMediaType document-format image/jpeg - GROUP job-attributes-tag - ATTR keyword media $OPTIONAL_LETTER_MEDIA - FILE color.jpg - - STATUS successful-ok - STATUS server-error-job-canceled - STATUS server-error-busy REPEAT-MATCH REPEAT-LIMIT 30 - - EXPECT job-uri OF-TYPE uri COUNT 1 IN-GROUP job-attributes-tag WITH-VALUE "$IPP_URI_SCHEME" - EXPECT job-id OF-TYPE integer COUNT 1 IN-GROUP job-attributes-tag - WITH-VALUE >0 - EXPECT job-state OF-TYPE unknown|enum COUNT 1 IN-GROUP job-attributes-tag - WITH-VALUE 3,4,5,6,7,8,9 - EXPECT job-state-reasons OF-TYPE keyword IN-GROUP job-attributes-tag - EXPECT ?job-state-message OF-TYPE text IN-GROUP job-attributes-tag - EXPECT ?number-of-intervening-jobs OF-TYPE integer - IN-GROUP job-attributes-tag WITH-VALUE >-1 -} - -{ - SKIP-IF-DEFINED NOPRINT - SKIP-IF-NOT-DEFINED OPTIONAL_JPEG - SKIP-IF-NOT-DEFINED OPTIONAL_4X6_MEDIA - - NAME "Print-Job with Color JPEG on 4x6" - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR name job-name "Color JPEG on 4x6" - ATTR boolean ipp-attribute-fidelity false - ATTR name document-name color.jpg - ATTR keyword compression none - ATTR mimeMediaType document-format image/jpeg - GROUP job-attributes-tag - ATTR keyword media $OPTIONAL_4X6_MEDIA - FILE color.jpg - - STATUS successful-ok - STATUS server-error-job-canceled - STATUS server-error-busy REPEAT-MATCH REPEAT-LIMIT 30 - - EXPECT job-uri OF-TYPE uri COUNT 1 IN-GROUP job-attributes-tag WITH-VALUE "$IPP_URI_SCHEME" - EXPECT job-id OF-TYPE integer COUNT 1 IN-GROUP job-attributes-tag - WITH-VALUE >0 - EXPECT job-state OF-TYPE unknown|enum COUNT 1 IN-GROUP job-attributes-tag - WITH-VALUE 3,4,5,6,7,8,9 - EXPECT job-state-reasons OF-TYPE keyword IN-GROUP job-attributes-tag - EXPECT ?job-state-message OF-TYPE text IN-GROUP job-attributes-tag - EXPECT ?number-of-intervening-jobs OF-TYPE integer - IN-GROUP job-attributes-tag WITH-VALUE >-1 -} - -{ - SKIP-IF-DEFINED NOPRINT - SKIP-IF-NOT-DEFINED OPTIONAL_JPEG - SKIP-IF-NOT-DEFINED OPTIONAL_A4_MEDIA - - NAME "Print-Job with Grayscale JPEG on A4" - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR name job-name "Grayscale JPEG on A4" - ATTR boolean ipp-attribute-fidelity false - ATTR name document-name gray.jpg - ATTR keyword compression none - ATTR mimeMediaType document-format image/jpeg - GROUP job-attributes-tag - ATTR keyword media $OPTIONAL_A4_MEDIA - FILE gray.jpg - - STATUS successful-ok - STATUS server-error-job-canceled - STATUS server-error-busy REPEAT-MATCH REPEAT-LIMIT 30 - - EXPECT job-uri OF-TYPE uri COUNT 1 IN-GROUP job-attributes-tag WITH-VALUE "$IPP_URI_SCHEME" - EXPECT job-id OF-TYPE integer COUNT 1 IN-GROUP job-attributes-tag - WITH-VALUE >0 - EXPECT job-state OF-TYPE unknown|enum COUNT 1 IN-GROUP job-attributes-tag - WITH-VALUE 3,4,5,6,7,8,9 - EXPECT job-state-reasons OF-TYPE keyword IN-GROUP job-attributes-tag - EXPECT ?job-state-message OF-TYPE text IN-GROUP job-attributes-tag - EXPECT ?number-of-intervening-jobs OF-TYPE integer - IN-GROUP job-attributes-tag WITH-VALUE >-1 -} - -{ - SKIP-IF-DEFINED NOPRINT - SKIP-IF-NOT-DEFINED OPTIONAL_JPEG - SKIP-IF-NOT-DEFINED OPTIONAL_LETTER_MEDIA - - NAME "Print-Job with Grayscale JPEG on US Letter" - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR name job-name "Grayscale JPEG on US Letter" - ATTR boolean ipp-attribute-fidelity false - ATTR name document-name gray.jpg - ATTR keyword compression none - ATTR mimeMediaType document-format image/jpeg - GROUP job-attributes-tag - ATTR keyword media $OPTIONAL_LETTER_MEDIA - FILE gray.jpg - - STATUS successful-ok - STATUS server-error-job-canceled - STATUS server-error-busy REPEAT-MATCH REPEAT-LIMIT 30 - - EXPECT job-uri OF-TYPE uri COUNT 1 IN-GROUP job-attributes-tag WITH-VALUE "$IPP_URI_SCHEME" - EXPECT job-id OF-TYPE integer COUNT 1 IN-GROUP job-attributes-tag - WITH-VALUE >0 - EXPECT job-state OF-TYPE unknown|enum COUNT 1 IN-GROUP job-attributes-tag - WITH-VALUE 3,4,5,6,7,8,9 - EXPECT job-state-reasons OF-TYPE keyword IN-GROUP job-attributes-tag - EXPECT ?job-state-message OF-TYPE text IN-GROUP job-attributes-tag - EXPECT ?number-of-intervening-jobs OF-TYPE integer - IN-GROUP job-attributes-tag WITH-VALUE >-1 -} - -{ - SKIP-IF-DEFINED NOPRINT - SKIP-IF-NOT-DEFINED OPTIONAL_JPEG - SKIP-IF-NOT-DEFINED OPTIONAL_4X6_MEDIA - - NAME "Print-Job with Grayscale JPEG on 4x6" - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR name job-name "Grayscale JPEG on 4x6" - ATTR boolean ipp-attribute-fidelity false - ATTR name document-name gray.jpg - ATTR keyword compression none - ATTR mimeMediaType document-format image/jpeg - GROUP job-attributes-tag - ATTR keyword media $OPTIONAL_4X6_MEDIA - FILE gray.jpg - - STATUS successful-ok - STATUS server-error-job-canceled - STATUS server-error-busy REPEAT-MATCH REPEAT-LIMIT 30 - - EXPECT job-uri OF-TYPE uri COUNT 1 IN-GROUP job-attributes-tag WITH-VALUE "$IPP_URI_SCHEME" - EXPECT job-id OF-TYPE integer COUNT 1 IN-GROUP job-attributes-tag - WITH-VALUE >0 - EXPECT job-state OF-TYPE unknown|enum COUNT 1 IN-GROUP job-attributes-tag - WITH-VALUE 3,4,5,6,7,8,9 - EXPECT job-state-reasons OF-TYPE keyword IN-GROUP job-attributes-tag - EXPECT ?job-state-message OF-TYPE text IN-GROUP job-attributes-tag - EXPECT ?number-of-intervening-jobs OF-TYPE integer - IN-GROUP job-attributes-tag WITH-VALUE >-1 + SKIP-IF-DEFINED NOPRINT + SKIP-IF-NOT-DEFINED OPTIONAL_JPEG + SKIP-IF-NOT-DEFINED OPTIONAL_A4_MEDIA + + NAME "Print-Job with Color JPEG on A4" + OPERATION Print-Job + GROUP operation-attributes-tag + ATTR charset attributes-charset utf-8 + ATTR naturalLanguage attributes-natural-language en + ATTR uri printer-uri $uri + ATTR name requesting-user-name $user + ATTR name job-name "Color JPEG on A4" + ATTR boolean ipp-attribute-fidelity false + ATTR name document-name color.jpg + ATTR keyword compression none + ATTR mimeMediaType document-format image/jpeg + GROUP job-attributes-tag + ATTR keyword media $OPTIONAL_A4_MEDIA + FILE color.jpg + + STATUS successful-ok + STATUS server-error-job-canceled + STATUS server-error-busy REPEAT-MATCH REPEAT-LIMIT 30 + + EXPECT job-uri OF-TYPE uri COUNT 1 IN-GROUP job-attributes-tag WITH-VALUE "$IPP_URI_SCHEME" + EXPECT job-id OF-TYPE integer COUNT 1 IN-GROUP job-attributes-tag WITH-VALUE >0 + EXPECT job-state OF-TYPE unknown|enum COUNT 1 IN-GROUP job-attributes-tag WITH-VALUE 3,4,5,6,7,8,9 + EXPECT job-state-reasons OF-TYPE keyword IN-GROUP job-attributes-tag + EXPECT ?job-state-message OF-TYPE text IN-GROUP job-attributes-tag + EXPECT ?number-of-intervening-jobs OF-TYPE integer + IN-GROUP job-attributes-tag WITH-VALUE >-1 +} + +{ + SKIP-IF-DEFINED NOPRINT + SKIP-IF-NOT-DEFINED OPTIONAL_JPEG + SKIP-IF-NOT-DEFINED OPTIONAL_LETTER_MEDIA + + NAME "Print-Job with Color JPEG on US Letter" + OPERATION Print-Job + GROUP operation-attributes-tag + ATTR charset attributes-charset utf-8 + ATTR naturalLanguage attributes-natural-language en + ATTR uri printer-uri $uri + ATTR name requesting-user-name $user + ATTR name job-name "Color JPEG on US Letter" + ATTR boolean ipp-attribute-fidelity false + ATTR name document-name color.jpg + ATTR keyword compression none + ATTR mimeMediaType document-format image/jpeg + GROUP job-attributes-tag + ATTR keyword media $OPTIONAL_LETTER_MEDIA + FILE color.jpg + + STATUS successful-ok + STATUS server-error-job-canceled + STATUS server-error-busy REPEAT-MATCH REPEAT-LIMIT 30 + + EXPECT job-uri OF-TYPE uri COUNT 1 IN-GROUP job-attributes-tag WITH-VALUE "$IPP_URI_SCHEME" + EXPECT job-id OF-TYPE integer COUNT 1 IN-GROUP job-attributes-tag WITH-VALUE >0 + EXPECT job-state OF-TYPE unknown|enum COUNT 1 IN-GROUP job-attributes-tag WITH-VALUE 3,4,5,6,7,8,9 + EXPECT job-state-reasons OF-TYPE keyword IN-GROUP job-attributes-tag + EXPECT ?job-state-message OF-TYPE text IN-GROUP job-attributes-tag + EXPECT ?number-of-intervening-jobs OF-TYPE integer + IN-GROUP job-attributes-tag WITH-VALUE >-1 +} + +{ + SKIP-IF-DEFINED NOPRINT + SKIP-IF-NOT-DEFINED OPTIONAL_JPEG + SKIP-IF-NOT-DEFINED OPTIONAL_4X6_MEDIA + + NAME "Print-Job with Color JPEG on 4x6" + OPERATION Print-Job + GROUP operation-attributes-tag + ATTR charset attributes-charset utf-8 + ATTR naturalLanguage attributes-natural-language en + ATTR uri printer-uri $uri + ATTR name requesting-user-name $user + ATTR name job-name "Color JPEG on 4x6" + ATTR boolean ipp-attribute-fidelity false + ATTR name document-name color.jpg + ATTR keyword compression none + ATTR mimeMediaType document-format image/jpeg + GROUP job-attributes-tag + ATTR keyword media $OPTIONAL_4X6_MEDIA + FILE color.jpg + + STATUS successful-ok + STATUS server-error-job-canceled + STATUS server-error-busy REPEAT-MATCH REPEAT-LIMIT 30 + + EXPECT job-uri OF-TYPE uri COUNT 1 IN-GROUP job-attributes-tag WITH-VALUE "$IPP_URI_SCHEME" + EXPECT job-id OF-TYPE integer COUNT 1 IN-GROUP job-attributes-tag WITH-VALUE >0 + EXPECT job-state OF-TYPE unknown|enum COUNT 1 IN-GROUP job-attributes-tag WITH-VALUE 3,4,5,6,7,8,9 + EXPECT job-state-reasons OF-TYPE keyword IN-GROUP job-attributes-tag + EXPECT ?job-state-message OF-TYPE text IN-GROUP job-attributes-tag + EXPECT ?number-of-intervening-jobs OF-TYPE integer + IN-GROUP job-attributes-tag WITH-VALUE >-1 +} + +{ + SKIP-IF-DEFINED NOPRINT + SKIP-IF-NOT-DEFINED OPTIONAL_JPEG + SKIP-IF-NOT-DEFINED OPTIONAL_A4_MEDIA + + NAME "Print-Job with Grayscale JPEG on A4" + OPERATION Print-Job + GROUP operation-attributes-tag + ATTR charset attributes-charset utf-8 + ATTR naturalLanguage attributes-natural-language en + ATTR uri printer-uri $uri + ATTR name requesting-user-name $user + ATTR name job-name "Grayscale JPEG on A4" + ATTR boolean ipp-attribute-fidelity false + ATTR name document-name gray.jpg + ATTR keyword compression none + ATTR mimeMediaType document-format image/jpeg + GROUP job-attributes-tag + ATTR keyword media $OPTIONAL_A4_MEDIA + FILE gray.jpg + + STATUS successful-ok + STATUS server-error-job-canceled + STATUS server-error-busy REPEAT-MATCH REPEAT-LIMIT 30 + + EXPECT job-uri OF-TYPE uri COUNT 1 IN-GROUP job-attributes-tag WITH-VALUE "$IPP_URI_SCHEME" + EXPECT job-id OF-TYPE integer COUNT 1 IN-GROUP job-attributes-tag WITH-VALUE >0 + EXPECT job-state OF-TYPE unknown|enum COUNT 1 IN-GROUP job-attributes-tag WITH-VALUE 3,4,5,6,7,8,9 + EXPECT job-state-reasons OF-TYPE keyword IN-GROUP job-attributes-tag + EXPECT ?job-state-message OF-TYPE text IN-GROUP job-attributes-tag + EXPECT ?number-of-intervening-jobs OF-TYPE integer + IN-GROUP job-attributes-tag WITH-VALUE >-1 +} + +{ + SKIP-IF-DEFINED NOPRINT + SKIP-IF-NOT-DEFINED OPTIONAL_JPEG + SKIP-IF-NOT-DEFINED OPTIONAL_LETTER_MEDIA + + NAME "Print-Job with Grayscale JPEG on US Letter" + OPERATION Print-Job + GROUP operation-attributes-tag + ATTR charset attributes-charset utf-8 + ATTR naturalLanguage attributes-natural-language en + ATTR uri printer-uri $uri + ATTR name requesting-user-name $user + ATTR name job-name "Grayscale JPEG on US Letter" + ATTR boolean ipp-attribute-fidelity false + ATTR name document-name gray.jpg + ATTR keyword compression none + ATTR mimeMediaType document-format image/jpeg + GROUP job-attributes-tag + ATTR keyword media $OPTIONAL_LETTER_MEDIA + FILE gray.jpg + + STATUS successful-ok + STATUS server-error-job-canceled + STATUS server-error-busy REPEAT-MATCH REPEAT-LIMIT 30 + + EXPECT job-uri OF-TYPE uri COUNT 1 IN-GROUP job-attributes-tag WITH-VALUE "$IPP_URI_SCHEME" + EXPECT job-id OF-TYPE integer COUNT 1 IN-GROUP job-attributes-tag WITH-VALUE >0 + EXPECT job-state OF-TYPE unknown|enum COUNT 1 IN-GROUP job-attributes-tag WITH-VALUE 3,4,5,6,7,8,9 + EXPECT job-state-reasons OF-TYPE keyword IN-GROUP job-attributes-tag + EXPECT ?job-state-message OF-TYPE text IN-GROUP job-attributes-tag + EXPECT ?number-of-intervening-jobs OF-TYPE integer + IN-GROUP job-attributes-tag WITH-VALUE >-1 +} + +{ + SKIP-IF-DEFINED NOPRINT + SKIP-IF-NOT-DEFINED OPTIONAL_JPEG + SKIP-IF-NOT-DEFINED OPTIONAL_4X6_MEDIA + + NAME "Print-Job with Grayscale JPEG on 4x6" + OPERATION Print-Job + GROUP operation-attributes-tag + ATTR charset attributes-charset utf-8 + ATTR naturalLanguage attributes-natural-language en + ATTR uri printer-uri $uri + ATTR name requesting-user-name $user + ATTR name job-name "Grayscale JPEG on 4x6" + ATTR boolean ipp-attribute-fidelity false + ATTR name document-name gray.jpg + ATTR keyword compression none + ATTR mimeMediaType document-format image/jpeg + GROUP job-attributes-tag + ATTR keyword media $OPTIONAL_4X6_MEDIA + FILE gray.jpg + + STATUS successful-ok + STATUS server-error-job-canceled + STATUS server-error-busy REPEAT-MATCH REPEAT-LIMIT 30 + + EXPECT job-uri OF-TYPE uri COUNT 1 IN-GROUP job-attributes-tag WITH-VALUE "$IPP_URI_SCHEME" + EXPECT job-id OF-TYPE integer COUNT 1 IN-GROUP job-attributes-tag WITH-VALUE >0 + EXPECT job-state OF-TYPE unknown|enum COUNT 1 IN-GROUP job-attributes-tag WITH-VALUE 3,4,5,6,7,8,9 + EXPECT job-state-reasons OF-TYPE keyword IN-GROUP job-attributes-tag + EXPECT ?job-state-message OF-TYPE text IN-GROUP job-attributes-tag + EXPECT ?number-of-intervening-jobs OF-TYPE integer + IN-GROUP job-attributes-tag WITH-VALUE >-1 } # Print-Job with job-sheets { - SKIP-IF-DEFINED NOPRINT - SKIP-IF-NOT-DEFINED OPTIONAL_PDF - SKIP-IF-NOT-DEFINED OPTIONAL_A4_MEDIA - SKIP-IF-NOT-DEFINED OPTIONAL_STANDARD_SHEET - - NAME "Print-Job with A4 PDF and Standard Sheet" - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR name job-name "A4 Test Document w/Standard Sheet" - ATTR boolean ipp-attribute-fidelity false - ATTR name document-name document-a4.pdf - ATTR keyword compression none - ATTR mimeMediaType document-format application/pdf - GROUP job-attributes-tag - ATTR keyword media $OPTIONAL_A4_MEDIA - ATTR keyword job-sheets standard - FILE document-a4.pdf - - STATUS successful-ok - STATUS server-error-job-canceled - STATUS server-error-busy REPEAT-MATCH REPEAT-LIMIT 30 - - EXPECT job-uri OF-TYPE uri COUNT 1 IN-GROUP job-attributes-tag WITH-VALUE "$IPP_URI_SCHEME" - EXPECT job-id OF-TYPE integer COUNT 1 IN-GROUP job-attributes-tag - WITH-VALUE >0 - EXPECT job-state OF-TYPE unknown|enum COUNT 1 IN-GROUP job-attributes-tag - WITH-VALUE 3,4,5,6,7,8,9 - EXPECT job-state-reasons OF-TYPE keyword IN-GROUP job-attributes-tag - EXPECT ?job-state-message OF-TYPE text IN-GROUP job-attributes-tag - EXPECT ?number-of-intervening-jobs OF-TYPE integer - IN-GROUP job-attributes-tag WITH-VALUE >-1 -} - -{ - SKIP-IF-DEFINED NOPRINT - SKIP-IF-NOT-DEFINED OPTIONAL_PDF - SKIP-IF-NOT-DEFINED OPTIONAL_LETTER_MEDIA - SKIP-IF-NOT-DEFINED OPTIONAL_STANDARD_SHEET - - NAME "Print-Job with US Letter PDF and Standard Sheet" - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR name job-name "US Letter Test Document w/Standard Sheet" - ATTR boolean ipp-attribute-fidelity false - ATTR name document-name document-a4.pdf - ATTR keyword compression none - ATTR mimeMediaType document-format application/pdf - GROUP job-attributes-tag - ATTR keyword media $OPTIONAL_LETTER_MEDIA - ATTR keyword job-sheets standard - FILE document-a4.pdf - - STATUS successful-ok - STATUS server-error-job-canceled - STATUS server-error-busy REPEAT-MATCH REPEAT-LIMIT 30 - - EXPECT job-uri OF-TYPE uri COUNT 1 IN-GROUP job-attributes-tag WITH-VALUE "$IPP_URI_SCHEME" - EXPECT job-id OF-TYPE integer COUNT 1 IN-GROUP job-attributes-tag - WITH-VALUE >0 - EXPECT job-state OF-TYPE unknown|enum COUNT 1 IN-GROUP job-attributes-tag - WITH-VALUE 3,4,5,6,7,8,9 - EXPECT job-state-reasons OF-TYPE keyword IN-GROUP job-attributes-tag - EXPECT ?job-state-message OF-TYPE text IN-GROUP job-attributes-tag - EXPECT ?number-of-intervening-jobs OF-TYPE integer - IN-GROUP job-attributes-tag WITH-VALUE >-1 -} - -{ - SKIP-IF-DEFINED NOPRINT - SKIP-IF-NOT-DEFINED OPTIONAL_POSTSCRIPT - SKIP-IF-NOT-DEFINED OPTIONAL_A4_MEDIA - SKIP-IF-NOT-DEFINED OPTIONAL_STANDARD_SHEET - - NAME "Print-Job with A4 PDF and Standard Sheet" - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR name job-name "A4 Test Document w/Standard Sheet" - ATTR boolean ipp-attribute-fidelity false - ATTR name document-name document-a4.ps - ATTR keyword compression none - ATTR mimeMediaType document-format application/postscript - GROUP job-attributes-tag - ATTR keyword media $OPTIONAL_A4_MEDIA - ATTR keyword job-sheets standard - FILE document-a4.ps - - STATUS successful-ok - STATUS server-error-job-canceled - STATUS server-error-busy REPEAT-MATCH REPEAT-LIMIT 30 - - EXPECT job-uri OF-TYPE uri COUNT 1 IN-GROUP job-attributes-tag WITH-VALUE "$IPP_URI_SCHEME" - EXPECT job-id OF-TYPE integer COUNT 1 IN-GROUP job-attributes-tag - WITH-VALUE >0 - EXPECT job-state OF-TYPE unknown|enum COUNT 1 IN-GROUP job-attributes-tag - WITH-VALUE 3,4,5,6,7,8,9 - EXPECT job-state-reasons OF-TYPE keyword IN-GROUP job-attributes-tag - EXPECT ?job-state-message OF-TYPE text IN-GROUP job-attributes-tag - EXPECT ?number-of-intervening-jobs OF-TYPE integer - IN-GROUP job-attributes-tag WITH-VALUE >-1 -} - -{ - SKIP-IF-DEFINED NOPRINT - SKIP-IF-NOT-DEFINED OPTIONAL_POSTSCRIPT - SKIP-IF-NOT-DEFINED OPTIONAL_LETTER_MEDIA - SKIP-IF-NOT-DEFINED OPTIONAL_STANDARD_SHEET - - NAME "Print-Job with US Letter PDF and Standard Sheet" - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR name job-name "US Letter Test Document w/Standard Sheet" - ATTR boolean ipp-attribute-fidelity false - ATTR name document-name document-a4.ps - ATTR keyword compression none - ATTR mimeMediaType document-format application/postscript - GROUP job-attributes-tag - ATTR keyword media $OPTIONAL_LETTER_MEDIA - ATTR keyword job-sheets standard - FILE document-a4.ps - - STATUS successful-ok - STATUS server-error-job-canceled - STATUS server-error-busy REPEAT-MATCH REPEAT-LIMIT 30 - - EXPECT job-uri OF-TYPE uri COUNT 1 IN-GROUP job-attributes-tag WITH-VALUE "$IPP_URI_SCHEME" - EXPECT job-id OF-TYPE integer COUNT 1 IN-GROUP job-attributes-tag - WITH-VALUE >0 - EXPECT job-state OF-TYPE unknown|enum COUNT 1 IN-GROUP job-attributes-tag - WITH-VALUE 3,4,5,6,7,8,9 - EXPECT job-state-reasons OF-TYPE keyword IN-GROUP job-attributes-tag - EXPECT ?job-state-message OF-TYPE text IN-GROUP job-attributes-tag - EXPECT ?number-of-intervening-jobs OF-TYPE integer - IN-GROUP job-attributes-tag WITH-VALUE >-1 + SKIP-IF-DEFINED NOPRINT + SKIP-IF-NOT-DEFINED OPTIONAL_PDF + SKIP-IF-NOT-DEFINED OPTIONAL_A4_MEDIA + SKIP-IF-NOT-DEFINED OPTIONAL_STANDARD_SHEET + + NAME "Print-Job with A4 PDF and Standard Sheet" + OPERATION Print-Job + GROUP operation-attributes-tag + ATTR charset attributes-charset utf-8 + ATTR naturalLanguage attributes-natural-language en + ATTR uri printer-uri $uri + ATTR name requesting-user-name $user + ATTR name job-name "A4 Test Document w/Standard Sheet" + ATTR boolean ipp-attribute-fidelity false + ATTR name document-name document-a4.pdf + ATTR keyword compression none + ATTR mimeMediaType document-format application/pdf + GROUP job-attributes-tag + ATTR keyword media $OPTIONAL_A4_MEDIA + ATTR keyword job-sheets standard + FILE document-a4.pdf + + STATUS successful-ok + STATUS server-error-job-canceled + STATUS server-error-busy REPEAT-MATCH REPEAT-LIMIT 30 + + EXPECT job-uri OF-TYPE uri COUNT 1 IN-GROUP job-attributes-tag WITH-VALUE "$IPP_URI_SCHEME" + EXPECT job-id OF-TYPE integer COUNT 1 IN-GROUP job-attributes-tag WITH-VALUE >0 + EXPECT job-state OF-TYPE unknown|enum COUNT 1 IN-GROUP job-attributes-tag WITH-VALUE 3,4,5,6,7,8,9 + EXPECT job-state-reasons OF-TYPE keyword IN-GROUP job-attributes-tag + EXPECT ?job-state-message OF-TYPE text IN-GROUP job-attributes-tag + EXPECT ?number-of-intervening-jobs OF-TYPE integer + IN-GROUP job-attributes-tag WITH-VALUE >-1 +} + +{ + SKIP-IF-DEFINED NOPRINT + SKIP-IF-NOT-DEFINED OPTIONAL_PDF + SKIP-IF-NOT-DEFINED OPTIONAL_LETTER_MEDIA + SKIP-IF-NOT-DEFINED OPTIONAL_STANDARD_SHEET + + NAME "Print-Job with US Letter PDF and Standard Sheet" + OPERATION Print-Job + GROUP operation-attributes-tag + ATTR charset attributes-charset utf-8 + ATTR naturalLanguage attributes-natural-language en + ATTR uri printer-uri $uri + ATTR name requesting-user-name $user + ATTR name job-name "US Letter Test Document w/Standard Sheet" + ATTR boolean ipp-attribute-fidelity false + ATTR name document-name document-a4.pdf + ATTR keyword compression none + ATTR mimeMediaType document-format application/pdf + GROUP job-attributes-tag + ATTR keyword media $OPTIONAL_LETTER_MEDIA + ATTR keyword job-sheets standard + FILE document-a4.pdf + + STATUS successful-ok + STATUS server-error-job-canceled + STATUS server-error-busy REPEAT-MATCH REPEAT-LIMIT 30 + + EXPECT job-uri OF-TYPE uri COUNT 1 IN-GROUP job-attributes-tag WITH-VALUE "$IPP_URI_SCHEME" + EXPECT job-id OF-TYPE integer COUNT 1 IN-GROUP job-attributes-tag WITH-VALUE >0 + EXPECT job-state OF-TYPE unknown|enum COUNT 1 IN-GROUP job-attributes-tag WITH-VALUE 3,4,5,6,7,8,9 + EXPECT job-state-reasons OF-TYPE keyword IN-GROUP job-attributes-tag + EXPECT ?job-state-message OF-TYPE text IN-GROUP job-attributes-tag + EXPECT ?number-of-intervening-jobs OF-TYPE integer + IN-GROUP job-attributes-tag WITH-VALUE >-1 +} + +{ + SKIP-IF-DEFINED NOPRINT + SKIP-IF-NOT-DEFINED OPTIONAL_POSTSCRIPT + SKIP-IF-NOT-DEFINED OPTIONAL_A4_MEDIA + SKIP-IF-NOT-DEFINED OPTIONAL_STANDARD_SHEET + + NAME "Print-Job with A4 PDF and Standard Sheet" + OPERATION Print-Job + GROUP operation-attributes-tag + ATTR charset attributes-charset utf-8 + ATTR naturalLanguage attributes-natural-language en + ATTR uri printer-uri $uri + ATTR name requesting-user-name $user + ATTR name job-name "A4 Test Document w/Standard Sheet" + ATTR boolean ipp-attribute-fidelity false + ATTR name document-name document-a4.ps + ATTR keyword compression none + ATTR mimeMediaType document-format application/postscript + GROUP job-attributes-tag + ATTR keyword media $OPTIONAL_A4_MEDIA + ATTR keyword job-sheets standard + FILE document-a4.ps + + STATUS successful-ok + STATUS server-error-job-canceled + STATUS server-error-busy REPEAT-MATCH REPEAT-LIMIT 30 + + EXPECT job-uri OF-TYPE uri COUNT 1 IN-GROUP job-attributes-tag WITH-VALUE "$IPP_URI_SCHEME" + EXPECT job-id OF-TYPE integer COUNT 1 IN-GROUP job-attributes-tag WITH-VALUE >0 + EXPECT job-state OF-TYPE unknown|enum COUNT 1 IN-GROUP job-attributes-tag WITH-VALUE 3,4,5,6,7,8,9 + EXPECT job-state-reasons OF-TYPE keyword IN-GROUP job-attributes-tag + EXPECT ?job-state-message OF-TYPE text IN-GROUP job-attributes-tag + EXPECT ?number-of-intervening-jobs OF-TYPE integer + IN-GROUP job-attributes-tag WITH-VALUE >-1 +} + +{ + SKIP-IF-DEFINED NOPRINT + SKIP-IF-NOT-DEFINED OPTIONAL_POSTSCRIPT + SKIP-IF-NOT-DEFINED OPTIONAL_LETTER_MEDIA + SKIP-IF-NOT-DEFINED OPTIONAL_STANDARD_SHEET + + NAME "Print-Job with US Letter PDF and Standard Sheet" + OPERATION Print-Job + GROUP operation-attributes-tag + ATTR charset attributes-charset utf-8 + ATTR naturalLanguage attributes-natural-language en + ATTR uri printer-uri $uri + ATTR name requesting-user-name $user + ATTR name job-name "US Letter Test Document w/Standard Sheet" + ATTR boolean ipp-attribute-fidelity false + ATTR name document-name document-a4.ps + ATTR keyword compression none + ATTR mimeMediaType document-format application/postscript + GROUP job-attributes-tag + ATTR keyword media $OPTIONAL_LETTER_MEDIA + ATTR keyword job-sheets standard + FILE document-a4.ps + + STATUS successful-ok + STATUS server-error-job-canceled + STATUS server-error-busy REPEAT-MATCH REPEAT-LIMIT 30 + + EXPECT job-uri OF-TYPE uri COUNT 1 IN-GROUP job-attributes-tag WITH-VALUE "$IPP_URI_SCHEME" + EXPECT job-id OF-TYPE integer COUNT 1 IN-GROUP job-attributes-tag WITH-VALUE >0 + EXPECT job-state OF-TYPE unknown|enum COUNT 1 IN-GROUP job-attributes-tag WITH-VALUE 3,4,5,6,7,8,9 + EXPECT job-state-reasons OF-TYPE keyword IN-GROUP job-attributes-tag + EXPECT ?job-state-message OF-TYPE text IN-GROUP job-attributes-tag + EXPECT ?number-of-intervening-jobs OF-TYPE integer + IN-GROUP job-attributes-tag WITH-VALUE >-1 } # Test number-up output { - SKIP-IF-DEFINED NOPRINT - SKIP-IF-NOT-DEFINED OPTIONAL_PDF - SKIP-IF-NOT-DEFINED OPTIONAL_A4_MEDIA - SKIP-IF-NOT-DEFINED OPTIONAL_2UP - - NAME "Print-Job with A4 PDF, 2-Up" - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR name job-name "A4 Test Document; 2-Up" - ATTR boolean ipp-attribute-fidelity false - ATTR name document-name document-a4.pdf - ATTR keyword compression none - ATTR mimeMediaType document-format application/pdf - GROUP job-attributes-tag - ATTR keyword media $OPTIONAL_A4_MEDIA - ATTR integer number-up 2 - FILE document-a4.pdf - - STATUS successful-ok - STATUS server-error-job-canceled - STATUS server-error-busy REPEAT-MATCH REPEAT-LIMIT 30 - - EXPECT job-uri OF-TYPE uri COUNT 1 IN-GROUP job-attributes-tag WITH-VALUE "$IPP_URI_SCHEME" - EXPECT job-id OF-TYPE integer COUNT 1 IN-GROUP job-attributes-tag - WITH-VALUE >0 - EXPECT job-state OF-TYPE unknown|enum COUNT 1 IN-GROUP job-attributes-tag - WITH-VALUE 3,4,5,6,7,8,9 - EXPECT job-state-reasons OF-TYPE keyword IN-GROUP job-attributes-tag - EXPECT ?job-state-message OF-TYPE text IN-GROUP job-attributes-tag - EXPECT ?number-of-intervening-jobs OF-TYPE integer - IN-GROUP job-attributes-tag WITH-VALUE >-1 -} - -{ - SKIP-IF-DEFINED NOPRINT - SKIP-IF-NOT-DEFINED OPTIONAL_PDF - SKIP-IF-NOT-DEFINED OPTIONAL_LETTER_MEDIA - SKIP-IF-NOT-DEFINED OPTIONAL_2UP - - NAME "Print-Job with US Letter PDF, 2-Up" - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR name job-name "US Letter Test Document; 2-Up" - ATTR boolean ipp-attribute-fidelity false - ATTR name document-name document-letter.pdf - ATTR keyword compression none - ATTR mimeMediaType document-format application/pdf - GROUP job-attributes-tag - ATTR keyword media $OPTIONAL_LETTER_MEDIA - ATTR integer number-up 2 - FILE document-letter.pdf - - STATUS successful-ok - STATUS server-error-job-canceled - STATUS server-error-busy REPEAT-MATCH REPEAT-LIMIT 30 - - EXPECT job-uri OF-TYPE uri COUNT 1 IN-GROUP job-attributes-tag WITH-VALUE "$IPP_URI_SCHEME" - EXPECT job-id OF-TYPE integer COUNT 1 IN-GROUP job-attributes-tag - WITH-VALUE >0 - EXPECT job-state OF-TYPE unknown|enum COUNT 1 IN-GROUP job-attributes-tag - WITH-VALUE 3,4,5,6,7,8,9 - EXPECT job-state-reasons OF-TYPE keyword IN-GROUP job-attributes-tag - EXPECT ?job-state-message OF-TYPE text IN-GROUP job-attributes-tag - EXPECT ?number-of-intervening-jobs OF-TYPE integer - IN-GROUP job-attributes-tag WITH-VALUE >-1 -} - -{ - SKIP-IF-DEFINED NOPRINT - SKIP-IF-NOT-DEFINED OPTIONAL_POSTSCRIPT - SKIP-IF-NOT-DEFINED OPTIONAL_A4_MEDIA - SKIP-IF-NOT-DEFINED OPTIONAL_2UP - - NAME "Print-Job with A4 PDF, 2-Up" - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR name job-name "A4 Test Document; 2-Up" - ATTR boolean ipp-attribute-fidelity false - ATTR name document-name document-a4.ps - ATTR keyword compression none - ATTR mimeMediaType document-format application/postscript - GROUP job-attributes-tag - ATTR keyword media $OPTIONAL_A4_MEDIA - ATTR integer number-up 2 - FILE document-a4.ps - - STATUS successful-ok - STATUS server-error-job-canceled - STATUS server-error-busy REPEAT-MATCH REPEAT-LIMIT 30 - - EXPECT job-uri OF-TYPE uri COUNT 1 IN-GROUP job-attributes-tag WITH-VALUE "$IPP_URI_SCHEME" - EXPECT job-id OF-TYPE integer COUNT 1 IN-GROUP job-attributes-tag - WITH-VALUE >0 - EXPECT job-state OF-TYPE unknown|enum COUNT 1 IN-GROUP job-attributes-tag - WITH-VALUE 3,4,5,6,7,8,9 - EXPECT job-state-reasons OF-TYPE keyword IN-GROUP job-attributes-tag - EXPECT ?job-state-message OF-TYPE text IN-GROUP job-attributes-tag - EXPECT ?number-of-intervening-jobs OF-TYPE integer - IN-GROUP job-attributes-tag WITH-VALUE >-1 -} - -{ - SKIP-IF-DEFINED NOPRINT - SKIP-IF-NOT-DEFINED OPTIONAL_POSTSCRIPT - SKIP-IF-NOT-DEFINED OPTIONAL_LETTER_MEDIA - SKIP-IF-NOT-DEFINED OPTIONAL_2UP - - NAME "Print-Job with US Letter PDF, 2-Up" - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR name job-name "US Letter Test Document; 2-Up" - ATTR boolean ipp-attribute-fidelity false - ATTR name document-name document-letter.ps - ATTR keyword compression none - ATTR mimeMediaType document-format application/postscript - GROUP job-attributes-tag - ATTR keyword media $OPTIONAL_LETTER_MEDIA - ATTR integer number-up 2 - FILE document-letter.ps - - STATUS successful-ok - STATUS server-error-job-canceled - STATUS server-error-busy REPEAT-MATCH REPEAT-LIMIT 30 - - EXPECT job-uri OF-TYPE uri COUNT 1 IN-GROUP job-attributes-tag WITH-VALUE "$IPP_URI_SCHEME" - EXPECT job-id OF-TYPE integer COUNT 1 IN-GROUP job-attributes-tag - WITH-VALUE >0 - EXPECT job-state OF-TYPE unknown|enum COUNT 1 IN-GROUP job-attributes-tag - WITH-VALUE 3,4,5,6,7,8,9 - EXPECT job-state-reasons OF-TYPE keyword IN-GROUP job-attributes-tag - EXPECT ?job-state-message OF-TYPE text IN-GROUP job-attributes-tag - EXPECT ?number-of-intervening-jobs OF-TYPE integer - IN-GROUP job-attributes-tag WITH-VALUE >-1 + SKIP-IF-DEFINED NOPRINT + SKIP-IF-NOT-DEFINED OPTIONAL_PDF + SKIP-IF-NOT-DEFINED OPTIONAL_A4_MEDIA + SKIP-IF-NOT-DEFINED OPTIONAL_2UP + + NAME "Print-Job with A4 PDF, 2-Up" + OPERATION Print-Job + GROUP operation-attributes-tag + ATTR charset attributes-charset utf-8 + ATTR naturalLanguage attributes-natural-language en + ATTR uri printer-uri $uri + ATTR name requesting-user-name $user + ATTR name job-name "A4 Test Document; 2-Up" + ATTR boolean ipp-attribute-fidelity false + ATTR name document-name document-a4.pdf + ATTR keyword compression none + ATTR mimeMediaType document-format application/pdf + GROUP job-attributes-tag + ATTR keyword media $OPTIONAL_A4_MEDIA + ATTR integer number-up 2 + FILE document-a4.pdf + + STATUS successful-ok + STATUS server-error-job-canceled + STATUS server-error-busy REPEAT-MATCH REPEAT-LIMIT 30 + + EXPECT job-uri OF-TYPE uri COUNT 1 IN-GROUP job-attributes-tag WITH-VALUE "$IPP_URI_SCHEME" + EXPECT job-id OF-TYPE integer COUNT 1 IN-GROUP job-attributes-tag WITH-VALUE >0 + EXPECT job-state OF-TYPE unknown|enum COUNT 1 IN-GROUP job-attributes-tag WITH-VALUE 3,4,5,6,7,8,9 + EXPECT job-state-reasons OF-TYPE keyword IN-GROUP job-attributes-tag + EXPECT ?job-state-message OF-TYPE text IN-GROUP job-attributes-tag + EXPECT ?number-of-intervening-jobs OF-TYPE integer + IN-GROUP job-attributes-tag WITH-VALUE >-1 +} + +{ + SKIP-IF-DEFINED NOPRINT + SKIP-IF-NOT-DEFINED OPTIONAL_PDF + SKIP-IF-NOT-DEFINED OPTIONAL_LETTER_MEDIA + SKIP-IF-NOT-DEFINED OPTIONAL_2UP + + NAME "Print-Job with US Letter PDF, 2-Up" + OPERATION Print-Job + GROUP operation-attributes-tag + ATTR charset attributes-charset utf-8 + ATTR naturalLanguage attributes-natural-language en + ATTR uri printer-uri $uri + ATTR name requesting-user-name $user + ATTR name job-name "US Letter Test Document; 2-Up" + ATTR boolean ipp-attribute-fidelity false + ATTR name document-name document-letter.pdf + ATTR keyword compression none + ATTR mimeMediaType document-format application/pdf + GROUP job-attributes-tag + ATTR keyword media $OPTIONAL_LETTER_MEDIA + ATTR integer number-up 2 + FILE document-letter.pdf + + STATUS successful-ok + STATUS server-error-job-canceled + STATUS server-error-busy REPEAT-MATCH REPEAT-LIMIT 30 + + EXPECT job-uri OF-TYPE uri COUNT 1 IN-GROUP job-attributes-tag WITH-VALUE "$IPP_URI_SCHEME" + EXPECT job-id OF-TYPE integer COUNT 1 IN-GROUP job-attributes-tag WITH-VALUE >0 + EXPECT job-state OF-TYPE unknown|enum COUNT 1 IN-GROUP job-attributes-tag WITH-VALUE 3,4,5,6,7,8,9 + EXPECT job-state-reasons OF-TYPE keyword IN-GROUP job-attributes-tag + EXPECT ?job-state-message OF-TYPE text IN-GROUP job-attributes-tag + EXPECT ?number-of-intervening-jobs OF-TYPE integer + IN-GROUP job-attributes-tag WITH-VALUE >-1 +} + +{ + SKIP-IF-DEFINED NOPRINT + SKIP-IF-NOT-DEFINED OPTIONAL_POSTSCRIPT + SKIP-IF-NOT-DEFINED OPTIONAL_A4_MEDIA + SKIP-IF-NOT-DEFINED OPTIONAL_2UP + + NAME "Print-Job with A4 PDF, 2-Up" + OPERATION Print-Job + GROUP operation-attributes-tag + ATTR charset attributes-charset utf-8 + ATTR naturalLanguage attributes-natural-language en + ATTR uri printer-uri $uri + ATTR name requesting-user-name $user + ATTR name job-name "A4 Test Document; 2-Up" + ATTR boolean ipp-attribute-fidelity false + ATTR name document-name document-a4.ps + ATTR keyword compression none + ATTR mimeMediaType document-format application/postscript + GROUP job-attributes-tag + ATTR keyword media $OPTIONAL_A4_MEDIA + ATTR integer number-up 2 + FILE document-a4.ps + + STATUS successful-ok + STATUS server-error-job-canceled + STATUS server-error-busy REPEAT-MATCH REPEAT-LIMIT 30 + + EXPECT job-uri OF-TYPE uri COUNT 1 IN-GROUP job-attributes-tag WITH-VALUE "$IPP_URI_SCHEME" + EXPECT job-id OF-TYPE integer COUNT 1 IN-GROUP job-attributes-tag WITH-VALUE >0 + EXPECT job-state OF-TYPE unknown|enum COUNT 1 IN-GROUP job-attributes-tag WITH-VALUE 3,4,5,6,7,8,9 + EXPECT job-state-reasons OF-TYPE keyword IN-GROUP job-attributes-tag + EXPECT ?job-state-message OF-TYPE text IN-GROUP job-attributes-tag + EXPECT ?number-of-intervening-jobs OF-TYPE integer + IN-GROUP job-attributes-tag WITH-VALUE >-1 +} + +{ + SKIP-IF-DEFINED NOPRINT + SKIP-IF-NOT-DEFINED OPTIONAL_POSTSCRIPT + SKIP-IF-NOT-DEFINED OPTIONAL_LETTER_MEDIA + SKIP-IF-NOT-DEFINED OPTIONAL_2UP + + NAME "Print-Job with US Letter PDF, 2-Up" + OPERATION Print-Job + GROUP operation-attributes-tag + ATTR charset attributes-charset utf-8 + ATTR naturalLanguage attributes-natural-language en + ATTR uri printer-uri $uri + ATTR name requesting-user-name $user + ATTR name job-name "US Letter Test Document; 2-Up" + ATTR boolean ipp-attribute-fidelity false + ATTR name document-name document-letter.ps + ATTR keyword compression none + ATTR mimeMediaType document-format application/postscript + GROUP job-attributes-tag + ATTR keyword media $OPTIONAL_LETTER_MEDIA + ATTR integer number-up 2 + FILE document-letter.ps + + STATUS successful-ok + STATUS server-error-job-canceled + STATUS server-error-busy REPEAT-MATCH REPEAT-LIMIT 30 + + EXPECT job-uri OF-TYPE uri COUNT 1 IN-GROUP job-attributes-tag WITH-VALUE "$IPP_URI_SCHEME" + EXPECT job-id OF-TYPE integer COUNT 1 IN-GROUP job-attributes-tag WITH-VALUE >0 + EXPECT job-state OF-TYPE unknown|enum COUNT 1 IN-GROUP job-attributes-tag WITH-VALUE 3,4,5,6,7,8,9 + EXPECT job-state-reasons OF-TYPE keyword IN-GROUP job-attributes-tag + EXPECT ?job-state-message OF-TYPE text IN-GROUP job-attributes-tag + EXPECT ?number-of-intervening-jobs OF-TYPE integer + IN-GROUP job-attributes-tag WITH-VALUE >-1 } # Test output with print-quality... { - SKIP-IF-DEFINED NOPRINT - SKIP-IF-NOT-DEFINED OPTIONAL_JPEG - SKIP-IF-NOT-DEFINED OPTIONAL_4X6_MEDIA - SKIP-IF-NOT-DEFINED OPTIONAL_DRAFT_QUALITY - - NAME "Print-Job with JPEG on 4x6, Draft Quality" - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR name job-name "4x6 Color JPEG; Draft Quality" - ATTR boolean ipp-attribute-fidelity false - ATTR name document-name color.jpg - ATTR keyword compression none - ATTR mimeMediaType document-format image/jpeg - GROUP job-attributes-tag - ATTR keyword media $OPTIONAL_4X6_MEDIA - ATTR enum print-quality 3 - FILE color.jpg - - STATUS successful-ok - STATUS server-error-job-canceled - STATUS server-error-busy REPEAT-MATCH REPEAT-LIMIT 30 - - EXPECT job-uri OF-TYPE uri COUNT 1 IN-GROUP job-attributes-tag WITH-VALUE "$IPP_URI_SCHEME" - EXPECT job-id OF-TYPE integer COUNT 1 IN-GROUP job-attributes-tag - WITH-VALUE >0 - EXPECT job-state OF-TYPE unknown|enum COUNT 1 IN-GROUP job-attributes-tag - WITH-VALUE 3,4,5,6,7,8,9 - EXPECT job-state-reasons OF-TYPE keyword IN-GROUP job-attributes-tag - EXPECT ?job-state-message OF-TYPE text IN-GROUP job-attributes-tag - EXPECT ?number-of-intervening-jobs OF-TYPE integer - IN-GROUP job-attributes-tag WITH-VALUE >-1 -} - -{ - SKIP-IF-DEFINED NOPRINT - SKIP-IF-NOT-DEFINED OPTIONAL_JPEG - SKIP-IF-NOT-DEFINED OPTIONAL_4X6_MEDIA - SKIP-IF-NOT-DEFINED OPTIONAL_NORMAL_QUALITY - - NAME "Print-Job with JPEG on 4x6, Normal Quality" - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR name job-name "4x6 Color JPEG; Normal Quality" - ATTR boolean ipp-attribute-fidelity false - ATTR name document-name color.jpg - ATTR keyword compression none - ATTR mimeMediaType document-format image/jpeg - GROUP job-attributes-tag - ATTR keyword media $OPTIONAL_4X6_MEDIA - ATTR enum print-quality 4 - FILE color.jpg - - STATUS successful-ok - STATUS server-error-job-canceled - STATUS server-error-busy REPEAT-MATCH REPEAT-LIMIT 30 - - EXPECT job-uri OF-TYPE uri COUNT 1 IN-GROUP job-attributes-tag WITH-VALUE "$IPP_URI_SCHEME" - EXPECT job-id OF-TYPE integer COUNT 1 IN-GROUP job-attributes-tag - WITH-VALUE >0 - EXPECT job-state OF-TYPE unknown|enum COUNT 1 IN-GROUP job-attributes-tag - WITH-VALUE 3,4,5,6,7,8,9 - EXPECT job-state-reasons OF-TYPE keyword IN-GROUP job-attributes-tag - EXPECT ?job-state-message OF-TYPE text IN-GROUP job-attributes-tag - EXPECT ?number-of-intervening-jobs OF-TYPE integer - IN-GROUP job-attributes-tag WITH-VALUE >-1 -} - -{ - SKIP-IF-DEFINED NOPRINT - SKIP-IF-NOT-DEFINED OPTIONAL_JPEG - SKIP-IF-NOT-DEFINED OPTIONAL_4X6_MEDIA - SKIP-IF-NOT-DEFINED OPTIONAL_HIGH_QUALITY - - NAME "Print-Job with JPEG on 4x6, High Quality" - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR name job-name "4x6 Color JPEG; High Quality" - ATTR boolean ipp-attribute-fidelity false - ATTR name document-name color.jpg - ATTR keyword compression none - ATTR mimeMediaType document-format image/jpeg - GROUP job-attributes-tag - ATTR keyword media $OPTIONAL_4X6_MEDIA - ATTR enum print-quality 5 - FILE color.jpg - - STATUS successful-ok - STATUS server-error-job-canceled - STATUS server-error-busy REPEAT-MATCH REPEAT-LIMIT 30 - - EXPECT job-uri OF-TYPE uri COUNT 1 IN-GROUP job-attributes-tag WITH-VALUE "$IPP_URI_SCHEME" - EXPECT job-id OF-TYPE integer COUNT 1 IN-GROUP job-attributes-tag - WITH-VALUE >0 - EXPECT job-state OF-TYPE unknown|enum COUNT 1 IN-GROUP job-attributes-tag - WITH-VALUE 3,4,5,6,7,8,9 - EXPECT job-state-reasons OF-TYPE keyword IN-GROUP job-attributes-tag - EXPECT ?job-state-message OF-TYPE text IN-GROUP job-attributes-tag - EXPECT ?number-of-intervening-jobs OF-TYPE integer - IN-GROUP job-attributes-tag WITH-VALUE >-1 -} - -{ - SKIP-IF-DEFINED NOPRINT - SKIP-IF-NOT-DEFINED OPTIONAL_PDF - SKIP-IF-NOT-DEFINED OPTIONAL_A4_MEDIA - SKIP-IF-NOT-DEFINED OPTIONAL_DRAFT_QUALITY - - NAME "Print-Job with A4 PDF, Draft Quality" - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR name job-name "A4 Test Document; 2-Up" - ATTR boolean ipp-attribute-fidelity false - ATTR name document-name document-a4.pdf - ATTR keyword compression none - ATTR mimeMediaType document-format application/pdf - GROUP job-attributes-tag - ATTR keyword media $OPTIONAL_A4_MEDIA - ATTR enum print-quality 3 - FILE document-a4.pdf - - STATUS successful-ok - STATUS server-error-job-canceled - STATUS server-error-busy REPEAT-MATCH REPEAT-LIMIT 30 - - EXPECT job-uri OF-TYPE uri COUNT 1 IN-GROUP job-attributes-tag WITH-VALUE "$IPP_URI_SCHEME" - EXPECT job-id OF-TYPE integer COUNT 1 IN-GROUP job-attributes-tag - WITH-VALUE >0 - EXPECT job-state OF-TYPE unknown|enum COUNT 1 IN-GROUP job-attributes-tag - WITH-VALUE 3,4,5,6,7,8,9 - EXPECT job-state-reasons OF-TYPE keyword IN-GROUP job-attributes-tag - EXPECT ?job-state-message OF-TYPE text IN-GROUP job-attributes-tag - EXPECT ?number-of-intervening-jobs OF-TYPE integer - IN-GROUP job-attributes-tag WITH-VALUE >-1 -} - -{ - SKIP-IF-DEFINED NOPRINT - SKIP-IF-NOT-DEFINED OPTIONAL_PDF - SKIP-IF-NOT-DEFINED OPTIONAL_LETTER_MEDIA - SKIP-IF-NOT-DEFINED OPTIONAL_DRAFT_QUALITY - - NAME "Print-Job with US Letter PDF, Draft Quality" - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR name job-name "US Letter Test Document; 2-Up" - ATTR boolean ipp-attribute-fidelity false - ATTR name document-name document-letter.pdf - ATTR keyword compression none - ATTR mimeMediaType document-format application/pdf - GROUP job-attributes-tag - ATTR keyword media $OPTIONAL_LETTER_MEDIA - ATTR enum print-quality 3 - FILE document-letter.pdf - - STATUS successful-ok - STATUS server-error-job-canceled - STATUS server-error-busy REPEAT-MATCH REPEAT-LIMIT 30 - - EXPECT job-uri OF-TYPE uri COUNT 1 IN-GROUP job-attributes-tag WITH-VALUE "$IPP_URI_SCHEME" - EXPECT job-id OF-TYPE integer COUNT 1 IN-GROUP job-attributes-tag - WITH-VALUE >0 - EXPECT job-state OF-TYPE unknown|enum COUNT 1 IN-GROUP job-attributes-tag - WITH-VALUE 3,4,5,6,7,8,9 - EXPECT job-state-reasons OF-TYPE keyword IN-GROUP job-attributes-tag - EXPECT ?job-state-message OF-TYPE text IN-GROUP job-attributes-tag - EXPECT ?number-of-intervening-jobs OF-TYPE integer - IN-GROUP job-attributes-tag WITH-VALUE >-1 + SKIP-IF-DEFINED NOPRINT + SKIP-IF-NOT-DEFINED OPTIONAL_JPEG + SKIP-IF-NOT-DEFINED OPTIONAL_4X6_MEDIA + SKIP-IF-NOT-DEFINED OPTIONAL_DRAFT_QUALITY + + NAME "Print-Job with JPEG on 4x6, Draft Quality" + OPERATION Print-Job + GROUP operation-attributes-tag + ATTR charset attributes-charset utf-8 + ATTR naturalLanguage attributes-natural-language en + ATTR uri printer-uri $uri + ATTR name requesting-user-name $user + ATTR name job-name "4x6 Color JPEG; Draft Quality" + ATTR boolean ipp-attribute-fidelity false + ATTR name document-name color.jpg + ATTR keyword compression none + ATTR mimeMediaType document-format image/jpeg + GROUP job-attributes-tag + ATTR keyword media $OPTIONAL_4X6_MEDIA + ATTR enum print-quality 3 + FILE color.jpg + + STATUS successful-ok + STATUS server-error-job-canceled + STATUS server-error-busy REPEAT-MATCH REPEAT-LIMIT 30 + + EXPECT job-uri OF-TYPE uri COUNT 1 IN-GROUP job-attributes-tag WITH-VALUE "$IPP_URI_SCHEME" + EXPECT job-id OF-TYPE integer COUNT 1 IN-GROUP job-attributes-tag WITH-VALUE >0 + EXPECT job-state OF-TYPE unknown|enum COUNT 1 IN-GROUP job-attributes-tag WITH-VALUE 3,4,5,6,7,8,9 + EXPECT job-state-reasons OF-TYPE keyword IN-GROUP job-attributes-tag + EXPECT ?job-state-message OF-TYPE text IN-GROUP job-attributes-tag + EXPECT ?number-of-intervening-jobs OF-TYPE integer + IN-GROUP job-attributes-tag WITH-VALUE >-1 +} + +{ + SKIP-IF-DEFINED NOPRINT + SKIP-IF-NOT-DEFINED OPTIONAL_JPEG + SKIP-IF-NOT-DEFINED OPTIONAL_4X6_MEDIA + SKIP-IF-NOT-DEFINED OPTIONAL_NORMAL_QUALITY + + NAME "Print-Job with JPEG on 4x6, Normal Quality" + OPERATION Print-Job + GROUP operation-attributes-tag + ATTR charset attributes-charset utf-8 + ATTR naturalLanguage attributes-natural-language en + ATTR uri printer-uri $uri + ATTR name requesting-user-name $user + ATTR name job-name "4x6 Color JPEG; Normal Quality" + ATTR boolean ipp-attribute-fidelity false + ATTR name document-name color.jpg + ATTR keyword compression none + ATTR mimeMediaType document-format image/jpeg + GROUP job-attributes-tag + ATTR keyword media $OPTIONAL_4X6_MEDIA + ATTR enum print-quality 4 + FILE color.jpg + + STATUS successful-ok + STATUS server-error-job-canceled + STATUS server-error-busy REPEAT-MATCH REPEAT-LIMIT 30 + + EXPECT job-uri OF-TYPE uri COUNT 1 IN-GROUP job-attributes-tag WITH-VALUE "$IPP_URI_SCHEME" + EXPECT job-id OF-TYPE integer COUNT 1 IN-GROUP job-attributes-tag WITH-VALUE >0 + EXPECT job-state OF-TYPE unknown|enum COUNT 1 IN-GROUP job-attributes-tag WITH-VALUE 3,4,5,6,7,8,9 + EXPECT job-state-reasons OF-TYPE keyword IN-GROUP job-attributes-tag + EXPECT ?job-state-message OF-TYPE text IN-GROUP job-attributes-tag + EXPECT ?number-of-intervening-jobs OF-TYPE integer + IN-GROUP job-attributes-tag WITH-VALUE >-1 +} + +{ + SKIP-IF-DEFINED NOPRINT + SKIP-IF-NOT-DEFINED OPTIONAL_JPEG + SKIP-IF-NOT-DEFINED OPTIONAL_4X6_MEDIA + SKIP-IF-NOT-DEFINED OPTIONAL_HIGH_QUALITY + + NAME "Print-Job with JPEG on 4x6, High Quality" + OPERATION Print-Job + GROUP operation-attributes-tag + ATTR charset attributes-charset utf-8 + ATTR naturalLanguage attributes-natural-language en + ATTR uri printer-uri $uri + ATTR name requesting-user-name $user + ATTR name job-name "4x6 Color JPEG; High Quality" + ATTR boolean ipp-attribute-fidelity false + ATTR name document-name color.jpg + ATTR keyword compression none + ATTR mimeMediaType document-format image/jpeg + GROUP job-attributes-tag + ATTR keyword media $OPTIONAL_4X6_MEDIA + ATTR enum print-quality 5 + FILE color.jpg + + STATUS successful-ok + STATUS server-error-job-canceled + STATUS server-error-busy REPEAT-MATCH REPEAT-LIMIT 30 + + EXPECT job-uri OF-TYPE uri COUNT 1 IN-GROUP job-attributes-tag WITH-VALUE "$IPP_URI_SCHEME" + EXPECT job-id OF-TYPE integer COUNT 1 IN-GROUP job-attributes-tag WITH-VALUE >0 + EXPECT job-state OF-TYPE unknown|enum COUNT 1 IN-GROUP job-attributes-tag WITH-VALUE 3,4,5,6,7,8,9 + EXPECT job-state-reasons OF-TYPE keyword IN-GROUP job-attributes-tag + EXPECT ?job-state-message OF-TYPE text IN-GROUP job-attributes-tag + EXPECT ?number-of-intervening-jobs OF-TYPE integer + IN-GROUP job-attributes-tag WITH-VALUE >-1 +} + +{ + SKIP-IF-DEFINED NOPRINT + SKIP-IF-NOT-DEFINED OPTIONAL_PDF + SKIP-IF-NOT-DEFINED OPTIONAL_A4_MEDIA + SKIP-IF-NOT-DEFINED OPTIONAL_DRAFT_QUALITY + + NAME "Print-Job with A4 PDF, Draft Quality" + OPERATION Print-Job + GROUP operation-attributes-tag + ATTR charset attributes-charset utf-8 + ATTR naturalLanguage attributes-natural-language en + ATTR uri printer-uri $uri + ATTR name requesting-user-name $user + ATTR name job-name "A4 Test Document; 2-Up" + ATTR boolean ipp-attribute-fidelity false + ATTR name document-name document-a4.pdf + ATTR keyword compression none + ATTR mimeMediaType document-format application/pdf + GROUP job-attributes-tag + ATTR keyword media $OPTIONAL_A4_MEDIA + ATTR enum print-quality 3 + FILE document-a4.pdf + + STATUS successful-ok + STATUS server-error-job-canceled + STATUS server-error-busy REPEAT-MATCH REPEAT-LIMIT 30 + + EXPECT job-uri OF-TYPE uri COUNT 1 IN-GROUP job-attributes-tag WITH-VALUE "$IPP_URI_SCHEME" + EXPECT job-id OF-TYPE integer COUNT 1 IN-GROUP job-attributes-tag WITH-VALUE >0 + EXPECT job-state OF-TYPE unknown|enum COUNT 1 IN-GROUP job-attributes-tag WITH-VALUE 3,4,5,6,7,8,9 + EXPECT job-state-reasons OF-TYPE keyword IN-GROUP job-attributes-tag + EXPECT ?job-state-message OF-TYPE text IN-GROUP job-attributes-tag + EXPECT ?number-of-intervening-jobs OF-TYPE integer + IN-GROUP job-attributes-tag WITH-VALUE >-1 +} + +{ + SKIP-IF-DEFINED NOPRINT + SKIP-IF-NOT-DEFINED OPTIONAL_PDF + SKIP-IF-NOT-DEFINED OPTIONAL_LETTER_MEDIA + SKIP-IF-NOT-DEFINED OPTIONAL_DRAFT_QUALITY + + NAME "Print-Job with US Letter PDF, Draft Quality" + OPERATION Print-Job + GROUP operation-attributes-tag + ATTR charset attributes-charset utf-8 + ATTR naturalLanguage attributes-natural-language en + ATTR uri printer-uri $uri + ATTR name requesting-user-name $user + ATTR name job-name "US Letter Test Document; 2-Up" + ATTR boolean ipp-attribute-fidelity false + ATTR name document-name document-letter.pdf + ATTR keyword compression none + ATTR mimeMediaType document-format application/pdf + GROUP job-attributes-tag + ATTR keyword media $OPTIONAL_LETTER_MEDIA + ATTR enum print-quality 3 + FILE document-letter.pdf + + STATUS successful-ok + STATUS server-error-job-canceled + STATUS server-error-busy REPEAT-MATCH REPEAT-LIMIT 30 + + EXPECT job-uri OF-TYPE uri COUNT 1 IN-GROUP job-attributes-tag WITH-VALUE "$IPP_URI_SCHEME" + EXPECT job-id OF-TYPE integer COUNT 1 IN-GROUP job-attributes-tag WITH-VALUE >0 + EXPECT job-state OF-TYPE unknown|enum COUNT 1 IN-GROUP job-attributes-tag WITH-VALUE 3,4,5,6,7,8,9 + EXPECT job-state-reasons OF-TYPE keyword IN-GROUP job-attributes-tag + EXPECT ?job-state-message OF-TYPE text IN-GROUP job-attributes-tag + EXPECT ?number-of-intervening-jobs OF-TYPE integer + IN-GROUP job-attributes-tag WITH-VALUE >-1 } # Test hold/release in the context of Print-Job w/job-hold-until + Release-Job { - SKIP-IF-NOT-DEFINED OPTIONAL_HOLD_JOB - - NAME "Print-Job with job-hold-until" - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR name job-name "Test Document w/Hold" - ATTR name document-name $filename - ATTR keyword compression none - ATTR mimeMediaType document-format $filetype - GROUP job-attributes-tag - ATTR keyword job-hold-until indefinite - FILE $filename - - STATUS successful-ok - STATUS server-error-job-canceled - STATUS server-error-busy REPEAT-MATCH REPEAT-LIMIT 30 - - EXPECT job-uri OF-TYPE uri COUNT 1 IN-GROUP job-attributes-tag WITH-VALUE "$IPP_URI_SCHEME" - EXPECT job-id OF-TYPE integer COUNT 1 IN-GROUP job-attributes-tag - WITH-VALUE >0 - EXPECT job-state OF-TYPE unknown|enum COUNT 1 IN-GROUP job-attributes-tag - WITH-VALUE 3,4,5,6,7,8,9 - EXPECT job-state-reasons OF-TYPE keyword IN-GROUP job-attributes-tag - EXPECT ?job-state-message OF-TYPE text IN-GROUP job-attributes-tag - EXPECT ?number-of-intervening-jobs OF-TYPE integer - IN-GROUP job-attributes-tag WITH-VALUE >-1 -} - -{ - SKIP-IF-NOT-DEFINED OPTIONAL_HOLD_JOB - - NAME "Release-Job" - OPERATION Release-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR integer job-id $job-id - ATTR name requesting-user-name $user - - STATUS successful-ok - STATUS client-error-not-possible + SKIP-IF-NOT-DEFINED OPTIONAL_HOLD_JOB + + NAME "Print-Job with job-hold-until" + OPERATION Print-Job + GROUP operation-attributes-tag + ATTR charset attributes-charset utf-8 + ATTR naturalLanguage attributes-natural-language en + ATTR uri printer-uri $uri + ATTR name requesting-user-name $user + ATTR name job-name "Test Document w/Hold" + ATTR name document-name $filename + ATTR keyword compression none + ATTR mimeMediaType document-format $filetype + GROUP job-attributes-tag + ATTR keyword job-hold-until indefinite + FILE $filename + + STATUS successful-ok + STATUS server-error-job-canceled + STATUS server-error-busy REPEAT-MATCH REPEAT-LIMIT 30 + + EXPECT job-uri OF-TYPE uri COUNT 1 IN-GROUP job-attributes-tag WITH-VALUE "$IPP_URI_SCHEME" + EXPECT job-id OF-TYPE integer COUNT 1 IN-GROUP job-attributes-tag WITH-VALUE >0 + EXPECT job-state OF-TYPE unknown|enum COUNT 1 IN-GROUP job-attributes-tag WITH-VALUE 3,4,5,6,7,8,9 + EXPECT job-state-reasons OF-TYPE keyword IN-GROUP job-attributes-tag + EXPECT ?job-state-message OF-TYPE text IN-GROUP job-attributes-tag + EXPECT ?number-of-intervening-jobs OF-TYPE integer + IN-GROUP job-attributes-tag WITH-VALUE >-1 +} + +{ + SKIP-IF-NOT-DEFINED OPTIONAL_HOLD_JOB + + NAME "Release-Job" + OPERATION Release-Job + GROUP operation-attributes-tag + ATTR charset attributes-charset utf-8 + ATTR naturalLanguage attributes-natural-language en + ATTR uri printer-uri $uri + ATTR integer job-id $job-id + ATTR name requesting-user-name $user + + STATUS successful-ok + STATUS client-error-not-possible } diff --git a/examples/ipp-2.0.test b/examples/ipp-2.0.test index 3746663eb..c682e3236 100644 --- a/examples/ipp-2.0.test +++ b/examples/ipp-2.0.test @@ -1,6 +1,7 @@ # # IPP/2.0 test suite. # +# Copyright © 2022 by OpenPrinting. # Copyright © 2007-2017 by Apple Inc. # Copyright © 2001-2006 by Easy Software Products. All rights reserved. # @@ -26,80 +27,80 @@ DEFINE MEDIA_REGEX "/^(choice(_((custom|na|asme|roc|oe|roll)_[a-z0-9][-a-z0-9]*_ # # Required by: PWG 5100.12 section 6.2 { - NAME "PWG 5100.12 section 6.2 - Required Printer Description Attributes" - OPERATION Get-Printer-Attributes - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format application/octet-stream + NAME "PWG 5100.12 section 6.2 - Required Printer Description Attributes" + OPERATION Get-Printer-Attributes + GROUP operation-attributes-tag + ATTR charset attributes-charset utf-8 + ATTR naturalLanguage attributes-natural-language en + ATTR uri printer-uri $uri + ATTR name requesting-user-name $user + ATTR mimeMediaType document-format application/octet-stream - STATUS successful-ok + STATUS successful-ok - # Figure out capabilities - EXPECT color-supported OF-TYPE boolean IN-GROUP printer-attributes-tag COUNT 1 WITH-VALUE true DEFINE-MATCH PRINTER_IS_COLOR + # Figure out capabilities + EXPECT color-supported OF-TYPE boolean IN-GROUP printer-attributes-tag COUNT 1 WITH-VALUE true DEFINE-MATCH PRINTER_IS_COLOR - # Job template attributes - EXPECT copies-default OF-TYPE integer IN-GROUP printer-attributes-tag COUNT 1 WITH-VALUE >0 - EXPECT copies-supported OF-TYPE rangeOfInteger IN-GROUP printer-attributes-tag - EXPECT finishings-default OF-TYPE enum IN-GROUP printer-attributes-tag - EXPECT finishings-supported OF-TYPE enum IN-GROUP printer-attributes-tag WITH-VALUE 3 - EXPECT media-default OF-TYPE no-value|keyword|name IN-GROUP printer-attributes-tag COUNT 1 WITH-VALUE "$MEDIA_REGEX" - EXPECT ?media-ready OF-TYPE keyword|name IN-GROUP printer-attributes-tag WITH-ALL-VALUES "$MEDIA_REGEX" - EXPECT media-supported OF-TYPE keyword|name IN-GROUP printer-attributes-tag WITH-ALL-VALUES "$MEDIA_REGEX" - EXPECT orientation-requested-default OF-TYPE no-value|enum IN-GROUP printer-attributes-tag COUNT 1 WITH-VALUE 3,4,5,6 - EXPECT orientation-requested-supported OF-TYPE enum IN-GROUP printer-attributes-tag WITH-VALUE 3,4,5,6 - EXPECT output-bin-default OF-TYPE keyword|name IN-GROUP printer-attributes-tag COUNT 1 - EXPECT output-bin-supported OF-TYPE keyword|name IN-GROUP printer-attributes-tag - EXPECT print-quality-default OF-TYPE enum IN-GROUP printer-attributes-tag COUNT 1 WITH-VALUE 3,4,5 - EXPECT print-quality-supported OF-TYPE enum IN-GROUP printer-attributes-tag WITH-VALUE 3,4,5 - EXPECT printer-resolution-default OF-TYPE resolution IN-GROUP printer-attributes-tag COUNT 1 - EXPECT printer-resolution-supported OF-TYPE resolution IN-GROUP printer-attributes-tag - EXPECT sides-default OF-TYPE keyword IN-GROUP printer-attributes-tag COUNT 1 WITH-ALL-VALUES "/^(one-sided|two-sided-long-edge|two-sided-short-edge)$$/" - EXPECT sides-supported OF-TYPE keyword IN-GROUP printer-attributes-tag WITH-ALL-VALUES "/^(one-sided|two-sided-long-edge|two-sided-short-edge)$$/" + # Job template attributes + EXPECT copies-default OF-TYPE integer IN-GROUP printer-attributes-tag COUNT 1 WITH-VALUE >0 + EXPECT copies-supported OF-TYPE rangeOfInteger IN-GROUP printer-attributes-tag + EXPECT finishings-default OF-TYPE enum IN-GROUP printer-attributes-tag + EXPECT finishings-supported OF-TYPE enum IN-GROUP printer-attributes-tag WITH-VALUE 3 + EXPECT media-default OF-TYPE no-value|keyword|name IN-GROUP printer-attributes-tag COUNT 1 WITH-VALUE "$MEDIA_REGEX" + EXPECT ?media-ready OF-TYPE keyword|name IN-GROUP printer-attributes-tag WITH-ALL-VALUES "$MEDIA_REGEX" + EXPECT media-supported OF-TYPE keyword|name IN-GROUP printer-attributes-tag WITH-ALL-VALUES "$MEDIA_REGEX" + EXPECT orientation-requested-default OF-TYPE no-value|enum IN-GROUP printer-attributes-tag COUNT 1 WITH-VALUE 3,4,5,6 + EXPECT orientation-requested-supported OF-TYPE enum IN-GROUP printer-attributes-tag WITH-VALUE 3,4,5,6 + EXPECT output-bin-default OF-TYPE keyword|name IN-GROUP printer-attributes-tag COUNT 1 + EXPECT output-bin-supported OF-TYPE keyword|name IN-GROUP printer-attributes-tag + EXPECT print-quality-default OF-TYPE enum IN-GROUP printer-attributes-tag COUNT 1 WITH-VALUE 3,4,5 + EXPECT print-quality-supported OF-TYPE enum IN-GROUP printer-attributes-tag WITH-VALUE 3,4,5 + EXPECT printer-resolution-default OF-TYPE resolution IN-GROUP printer-attributes-tag COUNT 1 + EXPECT printer-resolution-supported OF-TYPE resolution IN-GROUP printer-attributes-tag + EXPECT sides-default OF-TYPE keyword IN-GROUP printer-attributes-tag COUNT 1 WITH-ALL-VALUES "/^(one-sided|two-sided-long-edge|two-sided-short-edge)$$/" + EXPECT sides-supported OF-TYPE keyword IN-GROUP printer-attributes-tag WITH-ALL-VALUES "/^(one-sided|two-sided-long-edge|two-sided-short-edge)$$/" - # Optional media-col support - EXPECT ?media-col-default OF-TYPE collection IN-GROUP printer-attributes-tag COUNT 1 - EXPECT ?media-col-ready OF-TYPE collection IN-GROUP printer-attributes-tag - EXPECT ?media-col-supported OF-TYPE keyword IN-GROUP printer-attributes-tag - EXPECT media-col-supported WITH-VALUE media-back-coating DEFINE-MATCH HAVE_MEDIA_BACK_COATING - EXPECT media-col-supported WITH-VALUE media-color DEFINE-MATCH HAVE_MEDIA_COLOR - EXPECT media-col-supported WITH-VALUE media-front-coating DEFINE-MATCH HAVE_MEDIA_FRONT_COATING - EXPECT media-col-supported WITH-VALUE media-grain DEFINE-MATCH HAVE_MEDIA_GRAIN - EXPECT media-col-supported WITH-VALUE media-hole-count DEFINE-MATCH HAVE_MEDIA_HOLE_COUNT - EXPECT media-col-supported WITH-VALUE media-info DEFINE-MATCH HAVE_MEDIA_INFO - EXPECT media-col-supported WITH-VALUE media-key DEFINE-MATCH HAVE_MEDIA_KEY - EXPECT media-col-supported WITH-VALUE media-order-count DEFINE-MATCH HAVE_MEDIA_ORDER_COUNT - EXPECT media-col-supported WITH-VALUE media-pre-printed DEFINE-MATCH HAVE_MEDIA_PRE_PRINTED - EXPECT media-col-supported WITH-VALUE media-recycled DEFINE-MATCH HAVE_MEDIA_RECYCLED - EXPECT media-col-supported WITH-VALUE media-size DEFINE-MATCH HAVE_MEDIA_SIZE - EXPECT media-col-supported WITH-VALUE media-tooth DEFINE-MATCH HAVE_MEDIA_TOOTH - EXPECT media-col-supported WITH-VALUE media-type DEFINE-MATCH HAVE_MEDIA_TYPE - EXPECT media-col-supported WITH-VALUE media-weight-metric DEFINE-MATCH HAVE_MEDIA_WEIGHT_METRIC + # Optional media-col support + EXPECT ?media-col-default OF-TYPE collection IN-GROUP printer-attributes-tag COUNT 1 + EXPECT ?media-col-ready OF-TYPE collection IN-GROUP printer-attributes-tag + EXPECT ?media-col-supported OF-TYPE keyword IN-GROUP printer-attributes-tag + EXPECT media-col-supported WITH-VALUE media-back-coating DEFINE-MATCH HAVE_MEDIA_BACK_COATING + EXPECT media-col-supported WITH-VALUE media-color DEFINE-MATCH HAVE_MEDIA_COLOR + EXPECT media-col-supported WITH-VALUE media-front-coating DEFINE-MATCH HAVE_MEDIA_FRONT_COATING + EXPECT media-col-supported WITH-VALUE media-grain DEFINE-MATCH HAVE_MEDIA_GRAIN + EXPECT media-col-supported WITH-VALUE media-hole-count DEFINE-MATCH HAVE_MEDIA_HOLE_COUNT + EXPECT media-col-supported WITH-VALUE media-info DEFINE-MATCH HAVE_MEDIA_INFO + EXPECT media-col-supported WITH-VALUE media-key DEFINE-MATCH HAVE_MEDIA_KEY + EXPECT media-col-supported WITH-VALUE media-order-count DEFINE-MATCH HAVE_MEDIA_ORDER_COUNT + EXPECT media-col-supported WITH-VALUE media-pre-printed DEFINE-MATCH HAVE_MEDIA_PRE_PRINTED + EXPECT media-col-supported WITH-VALUE media-recycled DEFINE-MATCH HAVE_MEDIA_RECYCLED + EXPECT media-col-supported WITH-VALUE media-size DEFINE-MATCH HAVE_MEDIA_SIZE + EXPECT media-col-supported WITH-VALUE media-tooth DEFINE-MATCH HAVE_MEDIA_TOOTH + EXPECT media-col-supported WITH-VALUE media-type DEFINE-MATCH HAVE_MEDIA_TYPE + EXPECT media-col-supported WITH-VALUE media-weight-metric DEFINE-MATCH HAVE_MEDIA_WEIGHT_METRIC - EXPECT media-back-coating-supported OF-TYPE keyword|name IN-GROUP printer-attributes-tag IF-DEFINED HAVE_MEDIA_BACK_COATING - EXPECT media-color-supported OF-TYPE keyword|name IN-GROUP printer-attributes-tag IF-DEFINED HAVE_MEDIA_COLOR - EXPECT media-front-coating-supported OF-TYPE keyword|name IN-GROUP printer-attributes-tag IF-DEFINED HAVE_MEDIA_FRONT_COATING - EXPECT media-grain-supported OF-TYPE keyword|name IN-GROUP printer-attributes-tag IF-DEFINED HAVE_MEDIA_GRAIN - EXPECT media-hole-count-supported OF-TYPE rangeOfInteger IN-GROUP printer-attributes-tag WITH-VALUE >-1 IF-DEFINED HAVE_MEDIA_HOLE_COUNT - EXPECT media-info-supported OF-TYPE keyword|name IN-GROUP printer-attributes-tag IF-DEFINED HAVE_MEDIA_INFO - EXPECT media-key-supported OF-TYPE keyword|name IN-GROUP printer-attributes-tag IF-DEFINED HAVE_MEDIA_KEY - EXPECT media-order-count-supported OF-TYPE rangeOfInteger IN-GROUP printer-attributes-tag WITH-VALUE >0 IF-DEFINED HAVE_MEDIA_ORDER_COUNT - EXPECT media-pre-printed-supported OF-TYPE keyword|name IN-GROUP printer-attributes-tag IF-DEFINED HAVE_MEDIA_PRE_PRINTED - EXPECT media-recycled-supported OF-TYPE keyword|name IN-GROUP printer-attributes-tag IF-DEFINED HAVE_MEDIA_RECYCLED - EXPECT media-size-supported OF-TYPE collection IN-GROUP printer-attributes-tag IF-DEFINED HAVE_MEDIA_SIZE - EXPECT media-tooth-supported OF-TYPE keyword|name IN-GROUP printer-attributes-tag IF-DEFINED HAVE_MEDIA_TOOTH - EXPECT media-type-supported OF-TYPE keyword|name IN-GROUP printer-attributes-tag IF-DEFINED HAVE_MEDIA_TYPE - EXPECT media-weight-metric-supported OF-TYPE rangeOfInteger IN-GROUP printer-attributes-tag WITH-VALUE >-1 IF-DEFINED HAVE_MEDIA_WEIGHT_METRIC + EXPECT media-back-coating-supported OF-TYPE keyword|name IN-GROUP printer-attributes-tag IF-DEFINED HAVE_MEDIA_BACK_COATING + EXPECT media-color-supported OF-TYPE keyword|name IN-GROUP printer-attributes-tag IF-DEFINED HAVE_MEDIA_COLOR + EXPECT media-front-coating-supported OF-TYPE keyword|name IN-GROUP printer-attributes-tag IF-DEFINED HAVE_MEDIA_FRONT_COATING + EXPECT media-grain-supported OF-TYPE keyword|name IN-GROUP printer-attributes-tag IF-DEFINED HAVE_MEDIA_GRAIN + EXPECT media-hole-count-supported OF-TYPE rangeOfInteger IN-GROUP printer-attributes-tag WITH-VALUE >-1 IF-DEFINED HAVE_MEDIA_HOLE_COUNT + EXPECT media-info-supported OF-TYPE keyword|name IN-GROUP printer-attributes-tag IF-DEFINED HAVE_MEDIA_INFO + EXPECT media-key-supported OF-TYPE keyword|name IN-GROUP printer-attributes-tag IF-DEFINED HAVE_MEDIA_KEY + EXPECT media-order-count-supported OF-TYPE rangeOfInteger IN-GROUP printer-attributes-tag WITH-VALUE >0 IF-DEFINED HAVE_MEDIA_ORDER_COUNT + EXPECT media-pre-printed-supported OF-TYPE keyword|name IN-GROUP printer-attributes-tag IF-DEFINED HAVE_MEDIA_PRE_PRINTED + EXPECT media-recycled-supported OF-TYPE keyword|name IN-GROUP printer-attributes-tag IF-DEFINED HAVE_MEDIA_RECYCLED + EXPECT media-size-supported OF-TYPE collection IN-GROUP printer-attributes-tag IF-DEFINED HAVE_MEDIA_SIZE + EXPECT media-tooth-supported OF-TYPE keyword|name IN-GROUP printer-attributes-tag IF-DEFINED HAVE_MEDIA_TOOTH + EXPECT media-type-supported OF-TYPE keyword|name IN-GROUP printer-attributes-tag IF-DEFINED HAVE_MEDIA_TYPE + EXPECT media-weight-metric-supported OF-TYPE rangeOfInteger IN-GROUP printer-attributes-tag WITH-VALUE >-1 IF-DEFINED HAVE_MEDIA_WEIGHT_METRIC - # Printer description attributes - EXPECT color-supported OF-TYPE boolean IN-GROUP printer-attributes-tag COUNT 1 - EXPECT pages-per-minute OF-TYPE integer IN-GROUP printer-attributes-tag COUNT 1 - EXPECT pages-per-minute-color OF-TYPE integer IN-GROUP printer-attributes-tag COUNT 1 IF-DEFINED PRINTER_IS_COLOR - EXPECT !pages-per-minute-color IF-NOT-DEFINED PRINTER_IS_COLOR - EXPECT printer-info OF-TYPE text IN-GROUP printer-attributes-tag COUNT 1 WITH-VALUE "/^.{0,127}$$/" - EXPECT printer-location OF-TYPE text IN-GROUP printer-attributes-tag COUNT 1 WITH-VALUE "/^.{0,127}$$/" - EXPECT printer-make-and-model OF-TYPE text IN-GROUP printer-attributes-tag COUNT 1 WITH-VALUE "/^.{0,127}$$/" - EXPECT printer-more-info OF-TYPE uri IN-GROUP printer-attributes-tag COUNT 1 + # Printer description attributes + EXPECT color-supported OF-TYPE boolean IN-GROUP printer-attributes-tag COUNT 1 + EXPECT pages-per-minute OF-TYPE integer IN-GROUP printer-attributes-tag COUNT 1 + EXPECT pages-per-minute-color OF-TYPE integer IN-GROUP printer-attributes-tag COUNT 1 IF-DEFINED PRINTER_IS_COLOR + EXPECT !pages-per-minute-color IF-NOT-DEFINED PRINTER_IS_COLOR + EXPECT printer-info OF-TYPE text(127) IN-GROUP printer-attributes-tag COUNT 1 + EXPECT printer-location OF-TYPE text(127) IN-GROUP printer-attributes-tag COUNT 1 + EXPECT printer-make-and-model OF-TYPE text(127) IN-GROUP printer-attributes-tag COUNT 1 + EXPECT printer-more-info OF-TYPE uri IN-GROUP printer-attributes-tag COUNT 1 } diff --git a/examples/ipp-2.1.test b/examples/ipp-2.1.test deleted file mode 100644 index ca66e057a..000000000 --- a/examples/ipp-2.1.test +++ /dev/null @@ -1,86 +0,0 @@ -# -# IPP/2.1 test suite. -# -# Copyright © 2007-2017 by Apple Inc. -# Copyright © 2001-2006 by Easy Software Products. All rights reserved. -# -# Licensed under Apache License v2.0. See the file "LICENSE" for more -# information. -# -# Usage: -# -# ./ipptool -V 2.1 -f filename -t printer-uri ipp-2.1.test -# - -# Do all of the IPP/1.1 and IPP/2.0 tests as an IPP/2.1 client -INCLUDE "ipp-2.0.test" - - -# Test required printer description attribute support. -# -# Required by: PWG 5100.12 section 6.3 -{ - NAME "PWG 5100.12 section 6.3 - Required Printer Description Attributes" - OPERATION Get-Printer-Attributes - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format application/octet-stream - - STATUS successful-ok - - # Job template attributes - EXPECT job-hold-until-default OF-TYPE keyword|name IN-GROUP printer-attributes-tag COUNT 1 - EXPECT job-hold-until-supported OF-TYPE keyword|name IN-GROUP printer-attributes-tag WITH-VALUE no-hold - EXPECT job-priority-default OF-TYPE integer IN-GROUP printer-attributes-tag COUNT 1 WITH-VALUE >0,<101 - EXPECT job-priority-supported OF-TYPE integer IN-GROUP printer-attributes-tag COUNT 1 WITH-VALUE >0,<101 - EXPECT job-settable-attributes-supported OF-TYPE keyword IN-GROUP printer-attributes-tag - EXPECT job-sheets-default OF-TYPE keyword|name IN-GROUP printer-attributes-tag - EXPECT job-sheets-supported OF-TYPE keyword|name IN-GROUP printer-attributes-tag WITH-VALUE none - EXPECT media-col-default OF-TYPE collection IN-GROUP printer-attributes-tag COUNT 1 - EXPECT media-col-supported OF-TYPE keyword IN-GROUP printer-attributes-tag - EXPECT media-col-supported WITH-VALUE media-size - EXPECT media-default OF-TYPE keyword|name IN-GROUP printer-attributes-tag COUNT 1 - EXPECT media-supported OF-TYPE keyword|name IN-GROUP printer-attributes-tag - - # Subscription attributes - EXPECT notify-events-default OF-TYPE keyword IN-GROUP printer-attributes-tag - EXPECT notify-events-supported OF-TYPE keyword IN-GROUP printer-attributes-tag - EXPECT notify-lease-duration-default OF-TYPE integer IN-GROUP printer-attributes-tag COUNT 1 - EXPECT notify-lease-duration-supported OF-TYPE integer|rangeOfInteger IN-GROUP printer-attributes-tag - EXPECT notify-max-events-supported OF-TYPE integer IN-GROUP printer-attributes-tag COUNT 1 WITH-VALUE >1 - EXPECT notify-pull-method-supported OF-TYPE keyword IN-GROUP printer-attributes-tag WITH-VALUE ippget - - # Printer description attributes - EXPECT ippget-event-life OF-TYPE integer IN-GROUP printer-attributes-tag COUNT 1 - EXPECT multiple-operation-time-out OF-TYPE integer IN-GROUP printer-attributes-tag COUNT 1 WITH-VALUE >0 - - # Operations - EXPECT operations-supported WITH-VALUE 0x0005 # Create-Job - EXPECT operations-supported WITH-VALUE 0x0006 # Send-Document - EXPECT operations-supported WITH-VALUE 0x000C # Hold-Job - EXPECT operations-supported WITH-VALUE 0x000D # Release-Job - EXPECT operations-supported WITH-VALUE 0x000E # Restart-Job - EXPECT operations-supported WITH-VALUE 0x0010 # Pause-Printer - EXPECT operations-supported WITH-VALUE 0x0011 # Resume-Printer - EXPECT operations-supported WITH-VALUE 0x0012 # Purge-Jobs - EXPECT operations-supported WITH-VALUE 0x0013 # Set-Printer-Attributes - EXPECT operations-supported WITH-VALUE 0x0014 # Set-Job-Attributes - EXPECT operations-supported WITH-VALUE 0x0015 # Get-Printer-Supported-Values - EXPECT operations-supported WITH-VALUE 0x0016 # Create-Printer-Subscriptions - EXPECT operations-supported WITH-VALUE 0x0018 # Get-Subscription-Attributes - EXPECT operations-supported WITH-VALUE 0x0019 # Get-Subscriptions - EXPECT operations-supported WITH-VALUE 0x001A # Renew-Subscription - EXPECT operations-supported WITH-VALUE 0x001B # Cancel-Subscription - EXPECT operations-supported WITH-VALUE 0x001C # Get-Notifications - EXPECT operations-supported WITH-VALUE 0x0022 # Enable-Printer - EXPECT operations-supported WITH-VALUE 0x0023 # Disable-Printer - - EXPECT ?printer-alert OF-TYPE octetString IN-GROUP printer-attributes-tag - EXPECT ?printer-alert-description OF-TYPE text IN-GROUP printer-attributes-tag SAME-COUNT-AS printer-alert - EXPECT printer-settable-attributes-supported OF-TYPE keyword IN-GROUP printer-attributes-tag - EXPECT printer-state-change-time OF-TYPE integer IN-GROUP printer-attributes-tag COUNT 1 - EXPECT printer-state-reasons OF-TYPE keyword IN-GROUP printer-attributes-tag -} diff --git a/examples/ipp-2.2.test b/examples/ipp-2.2.test deleted file mode 100644 index bd4fecda2..000000000 --- a/examples/ipp-2.2.test +++ /dev/null @@ -1,76 +0,0 @@ -# -# IPP/2.2 test suite. -# -# Copyright © 2007-2017 by Apple Inc. -# Copyright © 2001-2006 by Easy Software Products. All rights reserved. -# -# Licensed under Apache License v2.0. See the file "LICENSE" for more -# information. -# -# Usage: -# -# ./ipptool -V 2.2 -f filename -t printer-uri ipp-2.2.test -# - -# Do all of the IPP/1.1, IPP/2.0, and IPP/2.1 tests as an IPP/2.2 client -INCLUDE "ipp-2.1.test" - - -# Test required printer description attribute support. -# -# Required by: PWG 5100.12 section 6.4 -{ - NAME "PWG 5100.12 section 6.4 - Required Printer Description Attributes" - OPERATION Get-Printer-Attributes - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format application/octet-stream - - STATUS successful-ok - - # Job template attributes - EXPECT number-up-default OF-TYPE integer IN-GROUP printer-attributes-tag COUNT 1 WITH-VALUE >0 - EXPECT number-up-supported OF-TYPE integer|rangeOfInteger IN-GROUP printer-attributes-tag WITH-VALUE >0 - EXPECT overrides-supported OF-TYPE keyword IN-GROUP printer-attributes-tag WITH-VALUE "document-numbers" - EXPECT overrides-supported OF-TYPE keyword IN-GROUP printer-attributes-tag WITH-VALUE "pages" - EXPECT page-ranges-supported OF-TYPE boolean IN-GROUP printer-attributes-tag COUNT 1 WITH-VALUE true - - # Printer description attributes - EXPECT job-creation-attributes-supported OF-TYPE keyword IN-GROUP printer-attributes-tag - EXPECT job-ids-supported OF-TYPE boolean IN-GROUP printer-attributes-tag COUNT 1 WITH-VALUE true - EXPECT media-col-ready - EXPECT media-ready - EXPECT multiple-document-jobs-supported OF-TYPE boolean IN-GROUP printer-attributes-tag COUNT 1 WITH-VALUE true - EXPECT printer-alert OF-TYPE octetString IN-GROUP printer-attributes-tag - EXPECT printer-alert-description OF-TYPE text IN-GROUP printer-attributes-tag SAME-COUNT-AS printer-alert - EXPECT printer-device-id OF-TYPE text IN-GROUP printer-attributes-tag COUNT 1 - EXPECT printer-message-from-operator OF-TYPE text IN-GROUP printer-attributes-tag COUNT 1 WITH-VALUE "/^.{0,127}$$/" - EXPECT which-jobs-supported OF-TYPE keyword IN-GROUP printer-attributes-tag WITH-VALUE "completed" - EXPECT which-jobs-supported OF-TYPE keyword IN-GROUP printer-attributes-tag WITH-VALUE "proof-print" - EXPECT which-jobs-supported OF-TYPE keyword IN-GROUP printer-attributes-tag WITH-VALUE "not-completed" - - # Operations - EXPECT operations-supported WITH-VALUE 0x0024 # Pause-Printer-After-Current-Job - EXPECT operations-supported WITH-VALUE 0x0025 # Hold-New-Jobs - EXPECT operations-supported WITH-VALUE 0x0026 # Release-Held-New-Jobs - EXPECT operations-supported WITH-VALUE 0x0029 # Restart-Printer - EXPECT operations-supported WITH-VALUE 0x002A # Shutdown-Printer - EXPECT operations-supported WITH-VALUE 0x002B # Startup-Printer - EXPECT operations-supported WITH-VALUE 0x002C # Reprocess-Job - EXPECT operations-supported WITH-VALUE 0x002D # Cancel-Current-Job - EXPECT operations-supported WITH-VALUE 0x002E # Suspend-Current-Job - EXPECT operations-supported WITH-VALUE 0x002F # Resume-Job - EXPECT operations-supported WITH-VALUE 0x0030 # Promote-Job - EXPECT operations-supported WITH-VALUE 0x0031 # Schedule-Job-After - EXPECT operations-supported WITH-VALUE 0x0033 # Cancel-Document - EXPECT operations-supported WITH-VALUE 0x0034 # Get-Document-Attributes - EXPECT operations-supported WITH-VALUE 0x0035 # Get-Documents - EXPECT operations-supported WITH-VALUE 0x0037 # Set-Document-Attributes - EXPECT operations-supported WITH-VALUE 0x0038 # Cancel-Jobs - EXPECT operations-supported WITH-VALUE 0x0039 # Cancel-My-Jobs - EXPECT operations-supported WITH-VALUE 0x003A # Resubmit-Job - EXPECT operations-supported WITH-VALUE 0x003B # Close-Job -} diff --git a/examples/ipp-backend.test b/examples/ipp-backend.test deleted file mode 100644 index c2642d375..000000000 --- a/examples/ipp-backend.test +++ /dev/null @@ -1,22 +0,0 @@ -# Get printer attributes using get-printer-attributes -{ - # The name of the test... - NAME "Get printer attributes using get-printer-attributes" - - # The resource to use for the POST - # RESOURCE /admin - - # The operation to use - OPERATION get-printer-attributes - - # Attributes, starting in the operation group... - GROUP operation - ATTR charset attributes-charset utf-8 - ATTR language attributes-natural-language en - ATTR uri printer-uri $uri - ATTR keyword requested-attributes com.apple.print.recoverable-message,copies-supported,document-format-supported,marker-colors,marker-levels,marker-message,marker-names,marker-types,printer-is-accepting-jobs,printer-state,printer-state-message,printer-state-reasons - - # What statuses are OK? - STATUS successful-ok - STATUS successful-ok-ignored-or-substituted-attributes -} diff --git a/examples/ipp-everywhere.test b/examples/ipp-everywhere.test deleted file mode 100644 index d7b0c445c..000000000 --- a/examples/ipp-everywhere.test +++ /dev/null @@ -1,9684 +0,0 @@ -# -# IPP Everywhere test suite. -# -# Copyright © 2007-2018 by Apple Inc. -# Copyright © 2001-2006 by Easy Software Products. All rights reserved. -# -# Licensed under Apache License v2.0. See the file "LICENSE" for more -# information. -# -# Usage: -# -# ./ipptool -V 2.0 -tf filename.ext printer-uri ipp-everywhere.test -# - -# Do all of the IPP/1.1 and IPP/2.0 tests -INCLUDE "ipp-2.0.test" - - -# Test required printer description attribute support. -# -# Required by: PWG 5100.14 -{ - NAME "PWG 5100.14 section 5.1/5.2 - Required Operations and Attributes" - OPERATION Get-Printer-Attributes - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format application/octet-stream - ATTR keyword requested-attributes all,media-col-database - - STATUS successful-ok - - # Operations - EXPECT operations-supported WITH-VALUE 0x0002 # Print-Job - EXPECT operations-supported WITH-VALUE 0x0004 # Validate-Job - EXPECT operations-supported WITH-VALUE 0x0005 # Create-Job - EXPECT operations-supported WITH-VALUE 0x0006 # Send-Document - EXPECT operations-supported WITH-VALUE 0x0008 # Cancel-Job - EXPECT operations-supported WITH-VALUE 0x0009 # Get-Job-Attributes - EXPECT operations-supported WITH-VALUE 0x000a # Get-Jobs - EXPECT operations-supported WITH-VALUE 0x000b # Get-Printer-Attributes - EXPECT operations-supported WITH-VALUE 0x0039 # Cancel-My-Jobs - EXPECT operations-supported WITH-VALUE 0x003b # Close-Job - EXPECT operations-supported WITH-VALUE 0x003c # Identify-Printer - - # Printer description attributes - EXPECT compression-supported OF-TYPE keyword IN-GROUP printer-attributes-tag WITH-VALUE "deflate" DEFINE-MATCH HAVE_DEFLATE - EXPECT compression-supported OF-TYPE keyword IN-GROUP printer-attributes-tag WITH-VALUE "gzip" DEFINE-MATCH HAVE_GZIP - - EXPECT document-format-supported OF-TYPE mimeMediaType IN-GROUP printer-attributes-tag WITH-VALUE "image/jpeg" - EXPECT document-format-supported OF-TYPE mimeMediaType IN-GROUP printer-attributes-tag WITH-VALUE "image/pwg-raster" - EXPECT document-format-supported OF-TYPE mimeMediaType IN-GROUP printer-attributes-tag WITH-VALUE "/^(application/pdf|application/openxps)$/" DEFINE-MATCH PDF_OR_OPENXPS - - EXPECT feed-orientation-supported OF-TYPE keyword IN-GROUP printer-attributes-tag DEFINE-MATCH FEED_ORIENTATION_SUPPORTED - EXPECT feed-orientation-default OF-TYPE keyword IN-GROUP printer-attributes-tag COUNT 1 IF-DEFINED FEED_ORIENTATION_SUPPORTED - - EXPECT finishings-supported OF-TYPE enum IN-GROUP printer-attributes-tag DEFINE-MATCH FINISHINGS_SUPPORTED - EXPECT finishings-default OF-TYPE enum IN-GROUP printer-attributes-tag IF-DEFINED FINISHINGS_SUPPORTED - - EXPECT identify-actions-default OF-TYPE keyword IN-GROUP printer-attributes-tag WITH-VALUE "/^(display|flash|sound|speak)$/" - EXPECT identify-actions-supported OF-TYPE keyword IN-GROUP printer-attributes-tag WITH-VALUE "/^(display|flash|sound|speak)$/" - - EXPECT ipp-features-supported OF-TYPE keyword IN-GROUP printer-attributes-tag WITH-VALUE "ipp-everywhere" - - EXPECT job-account-id-supported OF-TYPE boolean IN-GROUP printer-attributes-tag WITH-VALUE true COUNT 1 DEFINE-MATCH JOB_ACCOUNT_ID_SUPPORTED - EXPECT job-account-id-default OF-TYPE name|no-value IN-GROUP printer-attributes-tag COUNT 1 IF-DEFINED JOB_ACCOUNT_ID_SUPPORTED - - EXPECT job-accounting-user-id-supported OF-TYPE boolean IN-GROUP printer-attributes-tag WITH-VALUE true COUNT 1 DEFINE-MATCH JOB_ACCOUNTING_USER_ID_SUPPORTED - EXPECT job-accounting-user-id-default OF-TYPE name|no-value IN-GROUP printer-attributes-tag COUNT 1 IF-DEFINED JOB_ACCOUNTING_USER_ID_SUPPORTED - - EXPECT job-constraints-supported OF-TYPE collection IN-GROUP printer-attributes-tag DEFINE-MATCH JOB_CONSTRAINTS_SUPPORTED - EXPECT job-resolvers-supported OF-TYPE collection IN-GROUP printer-attributes-tag IF-DEFINED JOB_CONSTRAINTS_SUPPORTED - - EXPECT job-creation-attributes-supported OF-TYPE keyword IN-GROUP printer-attributes-tag - - EXPECT job-ids-supported OF-TYPE boolean IN-GROUP printer-attributes-tag COUNT 1 WITH-VALUE true - - EXPECT preferred-attributes-supported OF-TYPE boolean IN-GROUP printer-attributes-tag COUNT 1 - - EXPECT media-bottom-margin-supported OF-TYPE integer IN-GROUP printer-attributes-tag WITH-ALL-VALUES >-1 - EXPECT media-left-margin-supported OF-TYPE integer IN-GROUP printer-attributes-tag WITH-ALL-VALUES >-1 - EXPECT media-right-margin-supported OF-TYPE integer IN-GROUP printer-attributes-tag WITH-ALL-VALUES >-1 - EXPECT media-top-margin-supported OF-TYPE integer IN-GROUP printer-attributes-tag WITH-ALL-VALUES >-1 - - EXPECT media-col-database OF-TYPE collection IN-GROUP printer-attributes-tag - - EXPECT media-col-ready OF-TYPE collection IN-GROUP printer-attributes-tag - - EXPECT media-ready OF-TYPE keyword|name IN-GROUP printer-attributes-tag - - EXPECT media-size-supported OF-TYPE collection IN-GROUP printer-attributes-tag - - EXPECT media-source-supported OF-TYPE keyword|name IN-GROUP printer-attributes-tag - - EXPECT media-type-supported OF-TYPE keyword|name IN-GROUP printer-attributes-tag - - EXPECT multiple-document-jobs-supported OF-TYPE boolean IN-GROUP printer-attributes-tag COUNT 1 - - EXPECT multiple-operation-time-out OF-TYPE integer IN-GROUP printer-attributes-tag COUNT 1 WITH-VALUE >0 - - EXPECT multiple-operation-time-out-action OF-TYPE keyword IN-GROUP printer-attributes-tag COUNT 1 WITH-VALUE "/^(abort-job|hold-job|process-job)$/" - - EXPECT overrides-supported OF-TYPE keyword IN-GROUP printer-attributes-tag WITH-VALUE "document-number" - EXPECT overrides-supported OF-TYPE keyword IN-GROUP printer-attributes-tag WITH-VALUE "pages" - - EXPECT page-ranges-supported OF-TYPE boolean IN-GROUP printer-attributes-tag COUNT 1 WITH-VALUE true IF-DEFINED PDF_OR_OPENXPS - - EXPECT print-color-mode-default OF-TYPE keyword IN-GROUP printer-attributes-tag COUNT 1 WITH-VALUE "/^(auto|auto-monochrome|bi-level|color|highlight|monochrome|process-bi-level|process-monochrome)$/" - EXPECT print-color-mode-supported OF-TYPE keyword IN-GROUP printer-attributes-tag WITH-ALL-VALUES "/^(auto|auto-monochrome|bi-level|color|highlight|monochrome|process-bi-level|process-monochrome)$/" - - EXPECT print-content-optimize-default OF-TYPE keyword IN-GROUP printer-attributes-tag COUNT 1 WITH-VALUE "/^(auto|graphic|photo|text|text-and-graphic)$/" - EXPECT print-content-optimize-supported OF-TYPE keyword IN-GROUP printer-attributes-tag WITH-ALL-VALUES "/^(auto|graphic|photo|text|text-and-graphic)$/" - - EXPECT print-rendering-intent-default OF-TYPE keyword IN-GROUP printer-attributes-tag COUNT 1 WITH-VALUE "/^(auto|absolute|perceptual|relative|relative-bpc|saturation)$/" - EXPECT print-rendering-intent-supported OF-TYPE keyword IN-GROUP printer-attributes-tag WITH-ALL-VALUES "/^(auto|absolute|perceptual|relative|relative-bpc|saturation)$/" - - EXPECT ?printer-alert OF-TYPE octetString IN-GROUP printer-attributes-tag - EXPECT ?printer-alert-description OF-TYPE text IN-GROUP printer-attributes-tag SAME-COUNT-AS printer-alert - - EXPECT printer-charge-info DEFINE-MATCH PRINTER_CHARGE_INFO - EXPECT ?printer-charge-info OF-TYPE text IN-GROUP printer-attributes-tag COUNT 1 - EXPECT printer-charge-info-uri IF-DEFINED PRINTER_CHARGE_INFO - EXPECT ?printer-charge-info-uri OF-TYPE uri IN-GROUP printer-attributes-tag COUNT 1 - - EXPECT printer-config-change-date-time OF-TYPE dateTime IN-GROUP printer-attributes-tag COUNT 1 - EXPECT printer-config-change-time OF-TYPE integer IN-GROUP printer-attributes-tag COUNT 1 WITH-VALUE >-1 - - EXPECT printer-device-id OF-TYPE text IN-GROUP printer-attributes-tag COUNT 1 WITH-VALUE "/^([-A-Za-z ]+:[^;]*;)+$/" - - EXPECT printer-geo-location OF-TYPE uri|unknown IN-GROUP printer-attributes-tag COUNT 1 WITH-VALUE "/^geo:/" - - EXPECT printer-get-attributes-supported OF-TYPE keyword IN-GROUP printer-attributes-tag WITH-VALUE "document-format" - - EXPECT ?printer-icc-profiles-supported OF-TYPE collection IN-GROUP printer-attributes-tag - - EXPECT printer-icons OF-TYPE uri IN-GROUP printer-attributes-tag - - EXPECT ?printer-mandatory-job-attributes OF-TYPE keyword IN-GROUP printer-attributes-tag - - EXPECT printer-organization OF-TYPE text IN-GROUP printer-attributes-tag - EXPECT printer-organizational-unit OF-TYPE text IN-GROUP printer-attributes-tag - - EXPECT printer-state-change-date-time OF-TYPE dateTime IN-GROUP printer-attributes-tag COUNT 1 - EXPECT printer-state-change-time OF-TYPE integer IN-GROUP printer-attributes-tag COUNT 1 WITH-VALUE >-1 - - EXPECT printer-supply OF-TYPE octetString IN-GROUP printer-attributes-tag SAME-COUNT-AS printer-supply-description - EXPECT printer-supply-description OF-TYPE text IN-GROUP printer-attributes-tag SAME-COUNT-AS printer-supply - - EXPECT printer-supply-info-uri OF-TYPE uri IN-GROUP printer-attributes-tag COUNT 1 - - EXPECT printer-uuid OF-TYPE uri IN-GROUP printer-attributes-tag COUNT 1 WITH-VALUE "/^urn:uuid:[0-9A-Fa-f]{8,8}-[0-9A-Fa-f]{4,4}-[0-9A-Fa-f]{4,4}-[0-9A-Fa-f]{4,4}-[0-9A-Fa-f]{12,12}/" - - EXPECT pwg-raster-document-resolution-supported OF-TYPE resolution IN-GROUP printer-attributes-tag - EXPECT pwg-raster-document-resolution-supported WITH-VALUE 150dpi DEFINE-MATCH HAVE_150DPI - EXPECT pwg-raster-document-resolution-supported WITH-VALUE 180dpi DEFINE-MATCH HAVE_180DPI - EXPECT pwg-raster-document-resolution-supported WITH-VALUE 300dpi DEFINE-MATCH HAVE_300DPI - EXPECT pwg-raster-document-resolution-supported WITH-VALUE 360dpi DEFINE-MATCH HAVE_360DPI - EXPECT pwg-raster-document-resolution-supported WITH-VALUE 600dpi DEFINE-MATCH HAVE_600DPI - EXPECT pwg-raster-document-resolution-supported WITH-VALUE 720dpi DEFINE-MATCH HAVE_720DPI - - EXPECT pwg-raster-document-sheet-back OF-TYPE keyword IN-GROUP printer-attributes-tag COUNT 1 - - EXPECT pwg-raster-document-type-supported OF-TYPE keyword IN-GROUP printer-attributes-tag - EXPECT pwg-raster-document-type-supported WITH-VALUE "black_1" DEFINE-MATCH HAVE_BLACK_1 - EXPECT pwg-raster-document-type-supported WITH-VALUE "cmyk_8" DEFINE-MATCH HAVE_CMYK_8 - EXPECT pwg-raster-document-type-supported WITH-VALUE "sgray_8" DEFINE-MATCH HAVE_SGRAY_8 - EXPECT pwg-raster-document-type-supported WITH-VALUE "srgb_8" DEFINE-MATCH HAVE_SRGB_8 - EXPECT pwg-raster-document-type-supported WITH-VALUE "srgb_16" DEFINE-MATCH HAVE_SRGB_16 - - EXPECT which-jobs-supported OF-TYPE keyword IN-GROUP printer-attributes-tag -} - - -# Test printing all sample documents -{ - NAME "Print color.jpg-4x6 @ 150dpi, black-1" - SKIP-IF-MISSING pwg-raster-samples-150dpi/black-1/color.jpg-4x6-black-1-150dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_150DPI - SKIP-IF-NOT-DEFINED HAVE_BLACK_1 - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR name job-name "color.jpg-4x6" - FILE pwg-raster-samples-150dpi/black-1/color.jpg-4x6-black-1-150dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print color.jpg-4x6 @ 150dpi, black-1, deflate" - SKIP-IF-MISSING pwg-raster-samples-150dpi/black-1/color.jpg-4x6-black-1-150dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_150DPI - SKIP-IF-NOT-DEFINED HAVE_BLACK_1 - SKIP-IF-NOT-DEFINED HAVE_DEFLATE - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR keyword compression deflate - ATTR name job-name "color.jpg-4x6" - COMPRESSION deflate - FILE pwg-raster-samples-150dpi/black-1/color.jpg-4x6-black-1-150dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print color.jpg-4x6 @ 150dpi, black-1, gzip" - SKIP-IF-MISSING pwg-raster-samples-150dpi/black-1/color.jpg-4x6-black-1-150dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_150DPI - SKIP-IF-NOT-DEFINED HAVE_BLACK_1 - SKIP-IF-NOT-DEFINED HAVE_GZIP - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR keyword compression gzip - ATTR name job-name "color.jpg-4x6" - COMPRESSION gzip - FILE pwg-raster-samples-150dpi/black-1/color.jpg-4x6-black-1-150dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print color.jpg-4x6 @ 150dpi, cmyk-8" - SKIP-IF-MISSING pwg-raster-samples-150dpi/cmyk-8/color.jpg-4x6-cmyk-8-150dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_150DPI - SKIP-IF-NOT-DEFINED HAVE_CMYK_8 - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR name job-name "color.jpg-4x6" - FILE pwg-raster-samples-150dpi/cmyk-8/color.jpg-4x6-cmyk-8-150dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print color.jpg-4x6 @ 150dpi, cmyk-8, deflate" - SKIP-IF-MISSING pwg-raster-samples-150dpi/cmyk-8/color.jpg-4x6-cmyk-8-150dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_150DPI - SKIP-IF-NOT-DEFINED HAVE_CMYK_8 - SKIP-IF-NOT-DEFINED HAVE_DEFLATE - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR keyword compression deflate - ATTR name job-name "color.jpg-4x6" - COMPRESSION deflate - FILE pwg-raster-samples-150dpi/cmyk-8/color.jpg-4x6-cmyk-8-150dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print color.jpg-4x6 @ 150dpi, cmyk-8, gzip" - SKIP-IF-MISSING pwg-raster-samples-150dpi/cmyk-8/color.jpg-4x6-cmyk-8-150dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_150DPI - SKIP-IF-NOT-DEFINED HAVE_CMYK_8 - SKIP-IF-NOT-DEFINED HAVE_GZIP - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR keyword compression gzip - ATTR name job-name "color.jpg-4x6" - COMPRESSION gzip - FILE pwg-raster-samples-150dpi/cmyk-8/color.jpg-4x6-cmyk-8-150dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print color.jpg-4x6 @ 150dpi, sgray-8" - SKIP-IF-MISSING pwg-raster-samples-150dpi/sgray-8/color.jpg-4x6-sgray-8-150dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_150DPI - SKIP-IF-NOT-DEFINED HAVE_SGRAY_8 - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR name job-name "color.jpg-4x6" - FILE pwg-raster-samples-150dpi/sgray-8/color.jpg-4x6-sgray-8-150dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print color.jpg-4x6 @ 150dpi, sgray-8, deflate" - SKIP-IF-MISSING pwg-raster-samples-150dpi/sgray-8/color.jpg-4x6-sgray-8-150dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_150DPI - SKIP-IF-NOT-DEFINED HAVE_SGRAY_8 - SKIP-IF-NOT-DEFINED HAVE_DEFLATE - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR keyword compression deflate - ATTR name job-name "color.jpg-4x6" - COMPRESSION deflate - FILE pwg-raster-samples-150dpi/sgray-8/color.jpg-4x6-sgray-8-150dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print color.jpg-4x6 @ 150dpi, sgray-8, gzip" - SKIP-IF-MISSING pwg-raster-samples-150dpi/sgray-8/color.jpg-4x6-sgray-8-150dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_150DPI - SKIP-IF-NOT-DEFINED HAVE_SGRAY_8 - SKIP-IF-NOT-DEFINED HAVE_GZIP - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR keyword compression gzip - ATTR name job-name "color.jpg-4x6" - COMPRESSION gzip - FILE pwg-raster-samples-150dpi/sgray-8/color.jpg-4x6-sgray-8-150dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print color.jpg-4x6 @ 150dpi, srgb-8" - SKIP-IF-MISSING pwg-raster-samples-150dpi/srgb-8/color.jpg-4x6-srgb-8-150dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_150DPI - SKIP-IF-NOT-DEFINED HAVE_SRGB_8 - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR name job-name "color.jpg-4x6" - FILE pwg-raster-samples-150dpi/srgb-8/color.jpg-4x6-srgb-8-150dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print color.jpg-4x6 @ 150dpi, srgb-8, deflate" - SKIP-IF-MISSING pwg-raster-samples-150dpi/srgb-8/color.jpg-4x6-srgb-8-150dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_150DPI - SKIP-IF-NOT-DEFINED HAVE_SRGB_8 - SKIP-IF-NOT-DEFINED HAVE_DEFLATE - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR keyword compression deflate - ATTR name job-name "color.jpg-4x6" - COMPRESSION deflate - FILE pwg-raster-samples-150dpi/srgb-8/color.jpg-4x6-srgb-8-150dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print color.jpg-4x6 @ 150dpi, srgb-8, gzip" - SKIP-IF-MISSING pwg-raster-samples-150dpi/srgb-8/color.jpg-4x6-srgb-8-150dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_150DPI - SKIP-IF-NOT-DEFINED HAVE_SRGB_8 - SKIP-IF-NOT-DEFINED HAVE_GZIP - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR keyword compression gzip - ATTR name job-name "color.jpg-4x6" - COMPRESSION gzip - FILE pwg-raster-samples-150dpi/srgb-8/color.jpg-4x6-srgb-8-150dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print color.jpg-4x6 @ 150dpi, srgb-16" - SKIP-IF-MISSING pwg-raster-samples-150dpi/srgb-16/color.jpg-4x6-srgb-16-150dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_150DPI - SKIP-IF-NOT-DEFINED HAVE_SRGB_16 - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR name job-name "color.jpg-4x6" - FILE pwg-raster-samples-150dpi/srgb-16/color.jpg-4x6-srgb-16-150dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print color.jpg-4x6 @ 150dpi, srgb-16, deflate" - SKIP-IF-MISSING pwg-raster-samples-150dpi/srgb-16/color.jpg-4x6-srgb-16-150dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_150DPI - SKIP-IF-NOT-DEFINED HAVE_SRGB_16 - SKIP-IF-NOT-DEFINED HAVE_DEFLATE - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR keyword compression deflate - ATTR name job-name "color.jpg-4x6" - COMPRESSION deflate - FILE pwg-raster-samples-150dpi/srgb-16/color.jpg-4x6-srgb-16-150dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print color.jpg-4x6 @ 150dpi, srgb-16, gzip" - SKIP-IF-MISSING pwg-raster-samples-150dpi/srgb-16/color.jpg-4x6-srgb-16-150dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_150DPI - SKIP-IF-NOT-DEFINED HAVE_SRGB_16 - SKIP-IF-NOT-DEFINED HAVE_GZIP - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR keyword compression gzip - ATTR name job-name "color.jpg-4x6" - COMPRESSION gzip - FILE pwg-raster-samples-150dpi/srgb-16/color.jpg-4x6-srgb-16-150dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print color.jpg-4x6 @ 180dpi, black-1" - SKIP-IF-MISSING pwg-raster-samples-180dpi/black-1/color.jpg-4x6-black-1-180dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_180DPI - SKIP-IF-NOT-DEFINED HAVE_BLACK_1 - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR name job-name "color.jpg-4x6" - FILE pwg-raster-samples-180dpi/black-1/color.jpg-4x6-black-1-180dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print color.jpg-4x6 @ 180dpi, black-1, deflate" - SKIP-IF-MISSING pwg-raster-samples-180dpi/black-1/color.jpg-4x6-black-1-180dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_180DPI - SKIP-IF-NOT-DEFINED HAVE_BLACK_1 - SKIP-IF-NOT-DEFINED HAVE_DEFLATE - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR keyword compression deflate - ATTR name job-name "color.jpg-4x6" - COMPRESSION deflate - FILE pwg-raster-samples-180dpi/black-1/color.jpg-4x6-black-1-180dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print color.jpg-4x6 @ 180dpi, black-1, gzip" - SKIP-IF-MISSING pwg-raster-samples-180dpi/black-1/color.jpg-4x6-black-1-180dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_180DPI - SKIP-IF-NOT-DEFINED HAVE_BLACK_1 - SKIP-IF-NOT-DEFINED HAVE_GZIP - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR keyword compression gzip - ATTR name job-name "color.jpg-4x6" - COMPRESSION gzip - FILE pwg-raster-samples-180dpi/black-1/color.jpg-4x6-black-1-180dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print color.jpg-4x6 @ 180dpi, cmyk-8" - SKIP-IF-MISSING pwg-raster-samples-180dpi/cmyk-8/color.jpg-4x6-cmyk-8-180dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_180DPI - SKIP-IF-NOT-DEFINED HAVE_CMYK_8 - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR name job-name "color.jpg-4x6" - FILE pwg-raster-samples-180dpi/cmyk-8/color.jpg-4x6-cmyk-8-180dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print color.jpg-4x6 @ 180dpi, cmyk-8, deflate" - SKIP-IF-MISSING pwg-raster-samples-180dpi/cmyk-8/color.jpg-4x6-cmyk-8-180dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_180DPI - SKIP-IF-NOT-DEFINED HAVE_CMYK_8 - SKIP-IF-NOT-DEFINED HAVE_DEFLATE - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR keyword compression deflate - ATTR name job-name "color.jpg-4x6" - COMPRESSION deflate - FILE pwg-raster-samples-180dpi/cmyk-8/color.jpg-4x6-cmyk-8-180dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print color.jpg-4x6 @ 180dpi, cmyk-8, gzip" - SKIP-IF-MISSING pwg-raster-samples-180dpi/cmyk-8/color.jpg-4x6-cmyk-8-180dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_180DPI - SKIP-IF-NOT-DEFINED HAVE_CMYK_8 - SKIP-IF-NOT-DEFINED HAVE_GZIP - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR keyword compression gzip - ATTR name job-name "color.jpg-4x6" - COMPRESSION gzip - FILE pwg-raster-samples-180dpi/cmyk-8/color.jpg-4x6-cmyk-8-180dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print color.jpg-4x6 @ 180dpi, sgray-8" - SKIP-IF-MISSING pwg-raster-samples-180dpi/sgray-8/color.jpg-4x6-sgray-8-180dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_180DPI - SKIP-IF-NOT-DEFINED HAVE_SGRAY_8 - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR name job-name "color.jpg-4x6" - FILE pwg-raster-samples-180dpi/sgray-8/color.jpg-4x6-sgray-8-180dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print color.jpg-4x6 @ 180dpi, sgray-8, deflate" - SKIP-IF-MISSING pwg-raster-samples-180dpi/sgray-8/color.jpg-4x6-sgray-8-180dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_180DPI - SKIP-IF-NOT-DEFINED HAVE_SGRAY_8 - SKIP-IF-NOT-DEFINED HAVE_DEFLATE - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR keyword compression deflate - ATTR name job-name "color.jpg-4x6" - COMPRESSION deflate - FILE pwg-raster-samples-180dpi/sgray-8/color.jpg-4x6-sgray-8-180dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print color.jpg-4x6 @ 180dpi, sgray-8, gzip" - SKIP-IF-MISSING pwg-raster-samples-180dpi/sgray-8/color.jpg-4x6-sgray-8-180dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_180DPI - SKIP-IF-NOT-DEFINED HAVE_SGRAY_8 - SKIP-IF-NOT-DEFINED HAVE_GZIP - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR keyword compression gzip - ATTR name job-name "color.jpg-4x6" - COMPRESSION gzip - FILE pwg-raster-samples-180dpi/sgray-8/color.jpg-4x6-sgray-8-180dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print color.jpg-4x6 @ 180dpi, srgb-8" - SKIP-IF-MISSING pwg-raster-samples-180dpi/srgb-8/color.jpg-4x6-srgb-8-180dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_180DPI - SKIP-IF-NOT-DEFINED HAVE_SRGB_8 - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR name job-name "color.jpg-4x6" - FILE pwg-raster-samples-180dpi/srgb-8/color.jpg-4x6-srgb-8-180dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print color.jpg-4x6 @ 180dpi, srgb-8, deflate" - SKIP-IF-MISSING pwg-raster-samples-180dpi/srgb-8/color.jpg-4x6-srgb-8-180dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_180DPI - SKIP-IF-NOT-DEFINED HAVE_SRGB_8 - SKIP-IF-NOT-DEFINED HAVE_DEFLATE - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR keyword compression deflate - ATTR name job-name "color.jpg-4x6" - COMPRESSION deflate - FILE pwg-raster-samples-180dpi/srgb-8/color.jpg-4x6-srgb-8-180dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print color.jpg-4x6 @ 180dpi, srgb-8, gzip" - SKIP-IF-MISSING pwg-raster-samples-180dpi/srgb-8/color.jpg-4x6-srgb-8-180dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_180DPI - SKIP-IF-NOT-DEFINED HAVE_SRGB_8 - SKIP-IF-NOT-DEFINED HAVE_GZIP - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR keyword compression gzip - ATTR name job-name "color.jpg-4x6" - COMPRESSION gzip - FILE pwg-raster-samples-180dpi/srgb-8/color.jpg-4x6-srgb-8-180dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print color.jpg-4x6 @ 180dpi, srgb-16" - SKIP-IF-MISSING pwg-raster-samples-180dpi/srgb-16/color.jpg-4x6-srgb-16-180dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_180DPI - SKIP-IF-NOT-DEFINED HAVE_SRGB_16 - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR name job-name "color.jpg-4x6" - FILE pwg-raster-samples-180dpi/srgb-16/color.jpg-4x6-srgb-16-180dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print color.jpg-4x6 @ 180dpi, srgb-16, deflate" - SKIP-IF-MISSING pwg-raster-samples-180dpi/srgb-16/color.jpg-4x6-srgb-16-180dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_180DPI - SKIP-IF-NOT-DEFINED HAVE_SRGB_16 - SKIP-IF-NOT-DEFINED HAVE_DEFLATE - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR keyword compression deflate - ATTR name job-name "color.jpg-4x6" - COMPRESSION deflate - FILE pwg-raster-samples-180dpi/srgb-16/color.jpg-4x6-srgb-16-180dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print color.jpg-4x6 @ 180dpi, srgb-16, gzip" - SKIP-IF-MISSING pwg-raster-samples-180dpi/srgb-16/color.jpg-4x6-srgb-16-180dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_180DPI - SKIP-IF-NOT-DEFINED HAVE_SRGB_16 - SKIP-IF-NOT-DEFINED HAVE_GZIP - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR keyword compression gzip - ATTR name job-name "color.jpg-4x6" - COMPRESSION gzip - FILE pwg-raster-samples-180dpi/srgb-16/color.jpg-4x6-srgb-16-180dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print color.jpg-4x6 @ 300dpi, black-1" - SKIP-IF-MISSING pwg-raster-samples-300dpi/black-1/color.jpg-4x6-black-1-300dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_300DPI - SKIP-IF-NOT-DEFINED HAVE_BLACK_1 - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR name job-name "color.jpg-4x6" - FILE pwg-raster-samples-300dpi/black-1/color.jpg-4x6-black-1-300dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print color.jpg-4x6 @ 300dpi, black-1, deflate" - SKIP-IF-MISSING pwg-raster-samples-300dpi/black-1/color.jpg-4x6-black-1-300dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_300DPI - SKIP-IF-NOT-DEFINED HAVE_BLACK_1 - SKIP-IF-NOT-DEFINED HAVE_DEFLATE - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR keyword compression deflate - ATTR name job-name "color.jpg-4x6" - COMPRESSION deflate - FILE pwg-raster-samples-300dpi/black-1/color.jpg-4x6-black-1-300dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print color.jpg-4x6 @ 300dpi, black-1, gzip" - SKIP-IF-MISSING pwg-raster-samples-300dpi/black-1/color.jpg-4x6-black-1-300dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_300DPI - SKIP-IF-NOT-DEFINED HAVE_BLACK_1 - SKIP-IF-NOT-DEFINED HAVE_GZIP - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR keyword compression gzip - ATTR name job-name "color.jpg-4x6" - COMPRESSION gzip - FILE pwg-raster-samples-300dpi/black-1/color.jpg-4x6-black-1-300dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print color.jpg-4x6 @ 300dpi, cmyk-8" - SKIP-IF-MISSING pwg-raster-samples-300dpi/cmyk-8/color.jpg-4x6-cmyk-8-300dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_300DPI - SKIP-IF-NOT-DEFINED HAVE_CMYK_8 - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR name job-name "color.jpg-4x6" - FILE pwg-raster-samples-300dpi/cmyk-8/color.jpg-4x6-cmyk-8-300dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print color.jpg-4x6 @ 300dpi, cmyk-8, deflate" - SKIP-IF-MISSING pwg-raster-samples-300dpi/cmyk-8/color.jpg-4x6-cmyk-8-300dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_300DPI - SKIP-IF-NOT-DEFINED HAVE_CMYK_8 - SKIP-IF-NOT-DEFINED HAVE_DEFLATE - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR keyword compression deflate - ATTR name job-name "color.jpg-4x6" - COMPRESSION deflate - FILE pwg-raster-samples-300dpi/cmyk-8/color.jpg-4x6-cmyk-8-300dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print color.jpg-4x6 @ 300dpi, cmyk-8, gzip" - SKIP-IF-MISSING pwg-raster-samples-300dpi/cmyk-8/color.jpg-4x6-cmyk-8-300dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_300DPI - SKIP-IF-NOT-DEFINED HAVE_CMYK_8 - SKIP-IF-NOT-DEFINED HAVE_GZIP - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR keyword compression gzip - ATTR name job-name "color.jpg-4x6" - COMPRESSION gzip - FILE pwg-raster-samples-300dpi/cmyk-8/color.jpg-4x6-cmyk-8-300dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print color.jpg-4x6 @ 300dpi, sgray-8" - SKIP-IF-MISSING pwg-raster-samples-300dpi/sgray-8/color.jpg-4x6-sgray-8-300dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_300DPI - SKIP-IF-NOT-DEFINED HAVE_SGRAY_8 - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR name job-name "color.jpg-4x6" - FILE pwg-raster-samples-300dpi/sgray-8/color.jpg-4x6-sgray-8-300dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print color.jpg-4x6 @ 300dpi, sgray-8, deflate" - SKIP-IF-MISSING pwg-raster-samples-300dpi/sgray-8/color.jpg-4x6-sgray-8-300dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_300DPI - SKIP-IF-NOT-DEFINED HAVE_SGRAY_8 - SKIP-IF-NOT-DEFINED HAVE_DEFLATE - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR keyword compression deflate - ATTR name job-name "color.jpg-4x6" - COMPRESSION deflate - FILE pwg-raster-samples-300dpi/sgray-8/color.jpg-4x6-sgray-8-300dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print color.jpg-4x6 @ 300dpi, sgray-8, gzip" - SKIP-IF-MISSING pwg-raster-samples-300dpi/sgray-8/color.jpg-4x6-sgray-8-300dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_300DPI - SKIP-IF-NOT-DEFINED HAVE_SGRAY_8 - SKIP-IF-NOT-DEFINED HAVE_GZIP - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR keyword compression gzip - ATTR name job-name "color.jpg-4x6" - COMPRESSION gzip - FILE pwg-raster-samples-300dpi/sgray-8/color.jpg-4x6-sgray-8-300dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print color.jpg-4x6 @ 300dpi, srgb-8" - SKIP-IF-MISSING pwg-raster-samples-300dpi/srgb-8/color.jpg-4x6-srgb-8-300dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_300DPI - SKIP-IF-NOT-DEFINED HAVE_SRGB_8 - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR name job-name "color.jpg-4x6" - FILE pwg-raster-samples-300dpi/srgb-8/color.jpg-4x6-srgb-8-300dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print color.jpg-4x6 @ 300dpi, srgb-8, deflate" - SKIP-IF-MISSING pwg-raster-samples-300dpi/srgb-8/color.jpg-4x6-srgb-8-300dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_300DPI - SKIP-IF-NOT-DEFINED HAVE_SRGB_8 - SKIP-IF-NOT-DEFINED HAVE_DEFLATE - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR keyword compression deflate - ATTR name job-name "color.jpg-4x6" - COMPRESSION deflate - FILE pwg-raster-samples-300dpi/srgb-8/color.jpg-4x6-srgb-8-300dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print color.jpg-4x6 @ 300dpi, srgb-8, gzip" - SKIP-IF-MISSING pwg-raster-samples-300dpi/srgb-8/color.jpg-4x6-srgb-8-300dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_300DPI - SKIP-IF-NOT-DEFINED HAVE_SRGB_8 - SKIP-IF-NOT-DEFINED HAVE_GZIP - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR keyword compression gzip - ATTR name job-name "color.jpg-4x6" - COMPRESSION gzip - FILE pwg-raster-samples-300dpi/srgb-8/color.jpg-4x6-srgb-8-300dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print color.jpg-4x6 @ 300dpi, srgb-16" - SKIP-IF-MISSING pwg-raster-samples-300dpi/srgb-16/color.jpg-4x6-srgb-16-300dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_300DPI - SKIP-IF-NOT-DEFINED HAVE_SRGB_16 - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR name job-name "color.jpg-4x6" - FILE pwg-raster-samples-300dpi/srgb-16/color.jpg-4x6-srgb-16-300dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print color.jpg-4x6 @ 300dpi, srgb-16, deflate" - SKIP-IF-MISSING pwg-raster-samples-300dpi/srgb-16/color.jpg-4x6-srgb-16-300dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_300DPI - SKIP-IF-NOT-DEFINED HAVE_SRGB_16 - SKIP-IF-NOT-DEFINED HAVE_DEFLATE - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR keyword compression deflate - ATTR name job-name "color.jpg-4x6" - COMPRESSION deflate - FILE pwg-raster-samples-300dpi/srgb-16/color.jpg-4x6-srgb-16-300dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print color.jpg-4x6 @ 300dpi, srgb-16, gzip" - SKIP-IF-MISSING pwg-raster-samples-300dpi/srgb-16/color.jpg-4x6-srgb-16-300dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_300DPI - SKIP-IF-NOT-DEFINED HAVE_SRGB_16 - SKIP-IF-NOT-DEFINED HAVE_GZIP - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR keyword compression gzip - ATTR name job-name "color.jpg-4x6" - COMPRESSION gzip - FILE pwg-raster-samples-300dpi/srgb-16/color.jpg-4x6-srgb-16-300dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print color.jpg-4x6 @ 360dpi, black-1" - SKIP-IF-MISSING pwg-raster-samples-360dpi/black-1/color.jpg-4x6-black-1-360dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_360DPI - SKIP-IF-NOT-DEFINED HAVE_BLACK_1 - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR name job-name "color.jpg-4x6" - FILE pwg-raster-samples-360dpi/black-1/color.jpg-4x6-black-1-360dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print color.jpg-4x6 @ 360dpi, black-1, deflate" - SKIP-IF-MISSING pwg-raster-samples-360dpi/black-1/color.jpg-4x6-black-1-360dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_360DPI - SKIP-IF-NOT-DEFINED HAVE_BLACK_1 - SKIP-IF-NOT-DEFINED HAVE_DEFLATE - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR keyword compression deflate - ATTR name job-name "color.jpg-4x6" - COMPRESSION deflate - FILE pwg-raster-samples-360dpi/black-1/color.jpg-4x6-black-1-360dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print color.jpg-4x6 @ 360dpi, black-1, gzip" - SKIP-IF-MISSING pwg-raster-samples-360dpi/black-1/color.jpg-4x6-black-1-360dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_360DPI - SKIP-IF-NOT-DEFINED HAVE_BLACK_1 - SKIP-IF-NOT-DEFINED HAVE_GZIP - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR keyword compression gzip - ATTR name job-name "color.jpg-4x6" - COMPRESSION gzip - FILE pwg-raster-samples-360dpi/black-1/color.jpg-4x6-black-1-360dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print color.jpg-4x6 @ 360dpi, cmyk-8" - SKIP-IF-MISSING pwg-raster-samples-360dpi/cmyk-8/color.jpg-4x6-cmyk-8-360dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_360DPI - SKIP-IF-NOT-DEFINED HAVE_CMYK_8 - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR name job-name "color.jpg-4x6" - FILE pwg-raster-samples-360dpi/cmyk-8/color.jpg-4x6-cmyk-8-360dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print color.jpg-4x6 @ 360dpi, cmyk-8, deflate" - SKIP-IF-MISSING pwg-raster-samples-360dpi/cmyk-8/color.jpg-4x6-cmyk-8-360dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_360DPI - SKIP-IF-NOT-DEFINED HAVE_CMYK_8 - SKIP-IF-NOT-DEFINED HAVE_DEFLATE - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR keyword compression deflate - ATTR name job-name "color.jpg-4x6" - COMPRESSION deflate - FILE pwg-raster-samples-360dpi/cmyk-8/color.jpg-4x6-cmyk-8-360dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print color.jpg-4x6 @ 360dpi, cmyk-8, gzip" - SKIP-IF-MISSING pwg-raster-samples-360dpi/cmyk-8/color.jpg-4x6-cmyk-8-360dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_360DPI - SKIP-IF-NOT-DEFINED HAVE_CMYK_8 - SKIP-IF-NOT-DEFINED HAVE_GZIP - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR keyword compression gzip - ATTR name job-name "color.jpg-4x6" - COMPRESSION gzip - FILE pwg-raster-samples-360dpi/cmyk-8/color.jpg-4x6-cmyk-8-360dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print color.jpg-4x6 @ 360dpi, sgray-8" - SKIP-IF-MISSING pwg-raster-samples-360dpi/sgray-8/color.jpg-4x6-sgray-8-360dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_360DPI - SKIP-IF-NOT-DEFINED HAVE_SGRAY_8 - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR name job-name "color.jpg-4x6" - FILE pwg-raster-samples-360dpi/sgray-8/color.jpg-4x6-sgray-8-360dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print color.jpg-4x6 @ 360dpi, sgray-8, deflate" - SKIP-IF-MISSING pwg-raster-samples-360dpi/sgray-8/color.jpg-4x6-sgray-8-360dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_360DPI - SKIP-IF-NOT-DEFINED HAVE_SGRAY_8 - SKIP-IF-NOT-DEFINED HAVE_DEFLATE - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR keyword compression deflate - ATTR name job-name "color.jpg-4x6" - COMPRESSION deflate - FILE pwg-raster-samples-360dpi/sgray-8/color.jpg-4x6-sgray-8-360dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print color.jpg-4x6 @ 360dpi, sgray-8, gzip" - SKIP-IF-MISSING pwg-raster-samples-360dpi/sgray-8/color.jpg-4x6-sgray-8-360dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_360DPI - SKIP-IF-NOT-DEFINED HAVE_SGRAY_8 - SKIP-IF-NOT-DEFINED HAVE_GZIP - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR keyword compression gzip - ATTR name job-name "color.jpg-4x6" - COMPRESSION gzip - FILE pwg-raster-samples-360dpi/sgray-8/color.jpg-4x6-sgray-8-360dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print color.jpg-4x6 @ 360dpi, srgb-8" - SKIP-IF-MISSING pwg-raster-samples-360dpi/srgb-8/color.jpg-4x6-srgb-8-360dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_360DPI - SKIP-IF-NOT-DEFINED HAVE_SRGB_8 - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR name job-name "color.jpg-4x6" - FILE pwg-raster-samples-360dpi/srgb-8/color.jpg-4x6-srgb-8-360dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print color.jpg-4x6 @ 360dpi, srgb-8, deflate" - SKIP-IF-MISSING pwg-raster-samples-360dpi/srgb-8/color.jpg-4x6-srgb-8-360dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_360DPI - SKIP-IF-NOT-DEFINED HAVE_SRGB_8 - SKIP-IF-NOT-DEFINED HAVE_DEFLATE - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR keyword compression deflate - ATTR name job-name "color.jpg-4x6" - COMPRESSION deflate - FILE pwg-raster-samples-360dpi/srgb-8/color.jpg-4x6-srgb-8-360dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print color.jpg-4x6 @ 360dpi, srgb-8, gzip" - SKIP-IF-MISSING pwg-raster-samples-360dpi/srgb-8/color.jpg-4x6-srgb-8-360dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_360DPI - SKIP-IF-NOT-DEFINED HAVE_SRGB_8 - SKIP-IF-NOT-DEFINED HAVE_GZIP - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR keyword compression gzip - ATTR name job-name "color.jpg-4x6" - COMPRESSION gzip - FILE pwg-raster-samples-360dpi/srgb-8/color.jpg-4x6-srgb-8-360dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print color.jpg-4x6 @ 360dpi, srgb-16" - SKIP-IF-MISSING pwg-raster-samples-360dpi/srgb-16/color.jpg-4x6-srgb-16-360dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_360DPI - SKIP-IF-NOT-DEFINED HAVE_SRGB_16 - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR name job-name "color.jpg-4x6" - FILE pwg-raster-samples-360dpi/srgb-16/color.jpg-4x6-srgb-16-360dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print color.jpg-4x6 @ 360dpi, srgb-16, deflate" - SKIP-IF-MISSING pwg-raster-samples-360dpi/srgb-16/color.jpg-4x6-srgb-16-360dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_360DPI - SKIP-IF-NOT-DEFINED HAVE_SRGB_16 - SKIP-IF-NOT-DEFINED HAVE_DEFLATE - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR keyword compression deflate - ATTR name job-name "color.jpg-4x6" - COMPRESSION deflate - FILE pwg-raster-samples-360dpi/srgb-16/color.jpg-4x6-srgb-16-360dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print color.jpg-4x6 @ 360dpi, srgb-16, gzip" - SKIP-IF-MISSING pwg-raster-samples-360dpi/srgb-16/color.jpg-4x6-srgb-16-360dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_360DPI - SKIP-IF-NOT-DEFINED HAVE_SRGB_16 - SKIP-IF-NOT-DEFINED HAVE_GZIP - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR keyword compression gzip - ATTR name job-name "color.jpg-4x6" - COMPRESSION gzip - FILE pwg-raster-samples-360dpi/srgb-16/color.jpg-4x6-srgb-16-360dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print color.jpg-4x6 @ 600dpi, black-1" - SKIP-IF-MISSING pwg-raster-samples-600dpi/black-1/color.jpg-4x6-black-1-600dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_600DPI - SKIP-IF-NOT-DEFINED HAVE_BLACK_1 - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR name job-name "color.jpg-4x6" - FILE pwg-raster-samples-600dpi/black-1/color.jpg-4x6-black-1-600dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print color.jpg-4x6 @ 600dpi, black-1, deflate" - SKIP-IF-MISSING pwg-raster-samples-600dpi/black-1/color.jpg-4x6-black-1-600dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_600DPI - SKIP-IF-NOT-DEFINED HAVE_BLACK_1 - SKIP-IF-NOT-DEFINED HAVE_DEFLATE - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR keyword compression deflate - ATTR name job-name "color.jpg-4x6" - COMPRESSION deflate - FILE pwg-raster-samples-600dpi/black-1/color.jpg-4x6-black-1-600dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print color.jpg-4x6 @ 600dpi, black-1, gzip" - SKIP-IF-MISSING pwg-raster-samples-600dpi/black-1/color.jpg-4x6-black-1-600dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_600DPI - SKIP-IF-NOT-DEFINED HAVE_BLACK_1 - SKIP-IF-NOT-DEFINED HAVE_GZIP - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR keyword compression gzip - ATTR name job-name "color.jpg-4x6" - COMPRESSION gzip - FILE pwg-raster-samples-600dpi/black-1/color.jpg-4x6-black-1-600dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print color.jpg-4x6 @ 600dpi, cmyk-8" - SKIP-IF-MISSING pwg-raster-samples-600dpi/cmyk-8/color.jpg-4x6-cmyk-8-600dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_600DPI - SKIP-IF-NOT-DEFINED HAVE_CMYK_8 - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR name job-name "color.jpg-4x6" - FILE pwg-raster-samples-600dpi/cmyk-8/color.jpg-4x6-cmyk-8-600dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print color.jpg-4x6 @ 600dpi, cmyk-8, deflate" - SKIP-IF-MISSING pwg-raster-samples-600dpi/cmyk-8/color.jpg-4x6-cmyk-8-600dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_600DPI - SKIP-IF-NOT-DEFINED HAVE_CMYK_8 - SKIP-IF-NOT-DEFINED HAVE_DEFLATE - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR keyword compression deflate - ATTR name job-name "color.jpg-4x6" - COMPRESSION deflate - FILE pwg-raster-samples-600dpi/cmyk-8/color.jpg-4x6-cmyk-8-600dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print color.jpg-4x6 @ 600dpi, cmyk-8, gzip" - SKIP-IF-MISSING pwg-raster-samples-600dpi/cmyk-8/color.jpg-4x6-cmyk-8-600dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_600DPI - SKIP-IF-NOT-DEFINED HAVE_CMYK_8 - SKIP-IF-NOT-DEFINED HAVE_GZIP - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR keyword compression gzip - ATTR name job-name "color.jpg-4x6" - COMPRESSION gzip - FILE pwg-raster-samples-600dpi/cmyk-8/color.jpg-4x6-cmyk-8-600dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print color.jpg-4x6 @ 600dpi, sgray-8" - SKIP-IF-MISSING pwg-raster-samples-600dpi/sgray-8/color.jpg-4x6-sgray-8-600dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_600DPI - SKIP-IF-NOT-DEFINED HAVE_SGRAY_8 - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR name job-name "color.jpg-4x6" - FILE pwg-raster-samples-600dpi/sgray-8/color.jpg-4x6-sgray-8-600dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print color.jpg-4x6 @ 600dpi, sgray-8, deflate" - SKIP-IF-MISSING pwg-raster-samples-600dpi/sgray-8/color.jpg-4x6-sgray-8-600dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_600DPI - SKIP-IF-NOT-DEFINED HAVE_SGRAY_8 - SKIP-IF-NOT-DEFINED HAVE_DEFLATE - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR keyword compression deflate - ATTR name job-name "color.jpg-4x6" - COMPRESSION deflate - FILE pwg-raster-samples-600dpi/sgray-8/color.jpg-4x6-sgray-8-600dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print color.jpg-4x6 @ 600dpi, sgray-8, gzip" - SKIP-IF-MISSING pwg-raster-samples-600dpi/sgray-8/color.jpg-4x6-sgray-8-600dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_600DPI - SKIP-IF-NOT-DEFINED HAVE_SGRAY_8 - SKIP-IF-NOT-DEFINED HAVE_GZIP - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR keyword compression gzip - ATTR name job-name "color.jpg-4x6" - COMPRESSION gzip - FILE pwg-raster-samples-600dpi/sgray-8/color.jpg-4x6-sgray-8-600dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print color.jpg-4x6 @ 600dpi, srgb-8" - SKIP-IF-MISSING pwg-raster-samples-600dpi/srgb-8/color.jpg-4x6-srgb-8-600dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_600DPI - SKIP-IF-NOT-DEFINED HAVE_SRGB_8 - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR name job-name "color.jpg-4x6" - FILE pwg-raster-samples-600dpi/srgb-8/color.jpg-4x6-srgb-8-600dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print color.jpg-4x6 @ 600dpi, srgb-8, deflate" - SKIP-IF-MISSING pwg-raster-samples-600dpi/srgb-8/color.jpg-4x6-srgb-8-600dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_600DPI - SKIP-IF-NOT-DEFINED HAVE_SRGB_8 - SKIP-IF-NOT-DEFINED HAVE_DEFLATE - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR keyword compression deflate - ATTR name job-name "color.jpg-4x6" - COMPRESSION deflate - FILE pwg-raster-samples-600dpi/srgb-8/color.jpg-4x6-srgb-8-600dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print color.jpg-4x6 @ 600dpi, srgb-8, gzip" - SKIP-IF-MISSING pwg-raster-samples-600dpi/srgb-8/color.jpg-4x6-srgb-8-600dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_600DPI - SKIP-IF-NOT-DEFINED HAVE_SRGB_8 - SKIP-IF-NOT-DEFINED HAVE_GZIP - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR keyword compression gzip - ATTR name job-name "color.jpg-4x6" - COMPRESSION gzip - FILE pwg-raster-samples-600dpi/srgb-8/color.jpg-4x6-srgb-8-600dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print color.jpg-4x6 @ 600dpi, srgb-16" - SKIP-IF-MISSING pwg-raster-samples-600dpi/srgb-16/color.jpg-4x6-srgb-16-600dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_600DPI - SKIP-IF-NOT-DEFINED HAVE_SRGB_16 - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR name job-name "color.jpg-4x6" - FILE pwg-raster-samples-600dpi/srgb-16/color.jpg-4x6-srgb-16-600dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print color.jpg-4x6 @ 600dpi, srgb-16, deflate" - SKIP-IF-MISSING pwg-raster-samples-600dpi/srgb-16/color.jpg-4x6-srgb-16-600dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_600DPI - SKIP-IF-NOT-DEFINED HAVE_SRGB_16 - SKIP-IF-NOT-DEFINED HAVE_DEFLATE - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR keyword compression deflate - ATTR name job-name "color.jpg-4x6" - COMPRESSION deflate - FILE pwg-raster-samples-600dpi/srgb-16/color.jpg-4x6-srgb-16-600dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print color.jpg-4x6 @ 600dpi, srgb-16, gzip" - SKIP-IF-MISSING pwg-raster-samples-600dpi/srgb-16/color.jpg-4x6-srgb-16-600dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_600DPI - SKIP-IF-NOT-DEFINED HAVE_SRGB_16 - SKIP-IF-NOT-DEFINED HAVE_GZIP - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR keyword compression gzip - ATTR name job-name "color.jpg-4x6" - COMPRESSION gzip - FILE pwg-raster-samples-600dpi/srgb-16/color.jpg-4x6-srgb-16-600dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print color.jpg-4x6 @ 720dpi, black-1" - SKIP-IF-MISSING pwg-raster-samples-720dpi/black-1/color.jpg-4x6-black-1-720dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_720DPI - SKIP-IF-NOT-DEFINED HAVE_BLACK_1 - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR name job-name "color.jpg-4x6" - FILE pwg-raster-samples-720dpi/black-1/color.jpg-4x6-black-1-720dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print color.jpg-4x6 @ 720dpi, black-1, deflate" - SKIP-IF-MISSING pwg-raster-samples-720dpi/black-1/color.jpg-4x6-black-1-720dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_720DPI - SKIP-IF-NOT-DEFINED HAVE_BLACK_1 - SKIP-IF-NOT-DEFINED HAVE_DEFLATE - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR keyword compression deflate - ATTR name job-name "color.jpg-4x6" - COMPRESSION deflate - FILE pwg-raster-samples-720dpi/black-1/color.jpg-4x6-black-1-720dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print color.jpg-4x6 @ 720dpi, black-1, gzip" - SKIP-IF-MISSING pwg-raster-samples-720dpi/black-1/color.jpg-4x6-black-1-720dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_720DPI - SKIP-IF-NOT-DEFINED HAVE_BLACK_1 - SKIP-IF-NOT-DEFINED HAVE_GZIP - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR keyword compression gzip - ATTR name job-name "color.jpg-4x6" - COMPRESSION gzip - FILE pwg-raster-samples-720dpi/black-1/color.jpg-4x6-black-1-720dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print color.jpg-4x6 @ 720dpi, cmyk-8" - SKIP-IF-MISSING pwg-raster-samples-720dpi/cmyk-8/color.jpg-4x6-cmyk-8-720dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_720DPI - SKIP-IF-NOT-DEFINED HAVE_CMYK_8 - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR name job-name "color.jpg-4x6" - FILE pwg-raster-samples-720dpi/cmyk-8/color.jpg-4x6-cmyk-8-720dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print color.jpg-4x6 @ 720dpi, cmyk-8, deflate" - SKIP-IF-MISSING pwg-raster-samples-720dpi/cmyk-8/color.jpg-4x6-cmyk-8-720dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_720DPI - SKIP-IF-NOT-DEFINED HAVE_CMYK_8 - SKIP-IF-NOT-DEFINED HAVE_DEFLATE - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR keyword compression deflate - ATTR name job-name "color.jpg-4x6" - COMPRESSION deflate - FILE pwg-raster-samples-720dpi/cmyk-8/color.jpg-4x6-cmyk-8-720dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print color.jpg-4x6 @ 720dpi, cmyk-8, gzip" - SKIP-IF-MISSING pwg-raster-samples-720dpi/cmyk-8/color.jpg-4x6-cmyk-8-720dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_720DPI - SKIP-IF-NOT-DEFINED HAVE_CMYK_8 - SKIP-IF-NOT-DEFINED HAVE_GZIP - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR keyword compression gzip - ATTR name job-name "color.jpg-4x6" - COMPRESSION gzip - FILE pwg-raster-samples-720dpi/cmyk-8/color.jpg-4x6-cmyk-8-720dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print color.jpg-4x6 @ 720dpi, sgray-8" - SKIP-IF-MISSING pwg-raster-samples-720dpi/sgray-8/color.jpg-4x6-sgray-8-720dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_720DPI - SKIP-IF-NOT-DEFINED HAVE_SGRAY_8 - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR name job-name "color.jpg-4x6" - FILE pwg-raster-samples-720dpi/sgray-8/color.jpg-4x6-sgray-8-720dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print color.jpg-4x6 @ 720dpi, sgray-8, deflate" - SKIP-IF-MISSING pwg-raster-samples-720dpi/sgray-8/color.jpg-4x6-sgray-8-720dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_720DPI - SKIP-IF-NOT-DEFINED HAVE_SGRAY_8 - SKIP-IF-NOT-DEFINED HAVE_DEFLATE - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR keyword compression deflate - ATTR name job-name "color.jpg-4x6" - COMPRESSION deflate - FILE pwg-raster-samples-720dpi/sgray-8/color.jpg-4x6-sgray-8-720dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print color.jpg-4x6 @ 720dpi, sgray-8, gzip" - SKIP-IF-MISSING pwg-raster-samples-720dpi/sgray-8/color.jpg-4x6-sgray-8-720dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_720DPI - SKIP-IF-NOT-DEFINED HAVE_SGRAY_8 - SKIP-IF-NOT-DEFINED HAVE_GZIP - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR keyword compression gzip - ATTR name job-name "color.jpg-4x6" - COMPRESSION gzip - FILE pwg-raster-samples-720dpi/sgray-8/color.jpg-4x6-sgray-8-720dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print color.jpg-4x6 @ 720dpi, srgb-8" - SKIP-IF-MISSING pwg-raster-samples-720dpi/srgb-8/color.jpg-4x6-srgb-8-720dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_720DPI - SKIP-IF-NOT-DEFINED HAVE_SRGB_8 - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR name job-name "color.jpg-4x6" - FILE pwg-raster-samples-720dpi/srgb-8/color.jpg-4x6-srgb-8-720dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print color.jpg-4x6 @ 720dpi, srgb-8, deflate" - SKIP-IF-MISSING pwg-raster-samples-720dpi/srgb-8/color.jpg-4x6-srgb-8-720dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_720DPI - SKIP-IF-NOT-DEFINED HAVE_SRGB_8 - SKIP-IF-NOT-DEFINED HAVE_DEFLATE - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR keyword compression deflate - ATTR name job-name "color.jpg-4x6" - COMPRESSION deflate - FILE pwg-raster-samples-720dpi/srgb-8/color.jpg-4x6-srgb-8-720dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print color.jpg-4x6 @ 720dpi, srgb-8, gzip" - SKIP-IF-MISSING pwg-raster-samples-720dpi/srgb-8/color.jpg-4x6-srgb-8-720dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_720DPI - SKIP-IF-NOT-DEFINED HAVE_SRGB_8 - SKIP-IF-NOT-DEFINED HAVE_GZIP - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR keyword compression gzip - ATTR name job-name "color.jpg-4x6" - COMPRESSION gzip - FILE pwg-raster-samples-720dpi/srgb-8/color.jpg-4x6-srgb-8-720dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print color.jpg-4x6 @ 720dpi, srgb-16" - SKIP-IF-MISSING pwg-raster-samples-720dpi/srgb-16/color.jpg-4x6-srgb-16-720dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_720DPI - SKIP-IF-NOT-DEFINED HAVE_SRGB_16 - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR name job-name "color.jpg-4x6" - FILE pwg-raster-samples-720dpi/srgb-16/color.jpg-4x6-srgb-16-720dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print color.jpg-4x6 @ 720dpi, srgb-16, deflate" - SKIP-IF-MISSING pwg-raster-samples-720dpi/srgb-16/color.jpg-4x6-srgb-16-720dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_720DPI - SKIP-IF-NOT-DEFINED HAVE_SRGB_16 - SKIP-IF-NOT-DEFINED HAVE_DEFLATE - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR keyword compression deflate - ATTR name job-name "color.jpg-4x6" - COMPRESSION deflate - FILE pwg-raster-samples-720dpi/srgb-16/color.jpg-4x6-srgb-16-720dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print color.jpg-4x6 @ 720dpi, srgb-16, gzip" - SKIP-IF-MISSING pwg-raster-samples-720dpi/srgb-16/color.jpg-4x6-srgb-16-720dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_720DPI - SKIP-IF-NOT-DEFINED HAVE_SRGB_16 - SKIP-IF-NOT-DEFINED HAVE_GZIP - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR keyword compression gzip - ATTR name job-name "color.jpg-4x6" - COMPRESSION gzip - FILE pwg-raster-samples-720dpi/srgb-16/color.jpg-4x6-srgb-16-720dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print document-a4 @ 150dpi, black-1" - SKIP-IF-MISSING pwg-raster-samples-150dpi/black-1/document-a4-black-1-150dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_150DPI - SKIP-IF-NOT-DEFINED HAVE_BLACK_1 - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR name job-name "document-a4" - FILE pwg-raster-samples-150dpi/black-1/document-a4-black-1-150dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print document-a4 @ 150dpi, black-1, deflate" - SKIP-IF-MISSING pwg-raster-samples-150dpi/black-1/document-a4-black-1-150dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_150DPI - SKIP-IF-NOT-DEFINED HAVE_BLACK_1 - SKIP-IF-NOT-DEFINED HAVE_DEFLATE - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR keyword compression deflate - ATTR name job-name "document-a4" - COMPRESSION deflate - FILE pwg-raster-samples-150dpi/black-1/document-a4-black-1-150dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print document-a4 @ 150dpi, black-1, gzip" - SKIP-IF-MISSING pwg-raster-samples-150dpi/black-1/document-a4-black-1-150dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_150DPI - SKIP-IF-NOT-DEFINED HAVE_BLACK_1 - SKIP-IF-NOT-DEFINED HAVE_GZIP - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR keyword compression gzip - ATTR name job-name "document-a4" - COMPRESSION gzip - FILE pwg-raster-samples-150dpi/black-1/document-a4-black-1-150dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print document-a4 @ 150dpi, cmyk-8" - SKIP-IF-MISSING pwg-raster-samples-150dpi/cmyk-8/document-a4-cmyk-8-150dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_150DPI - SKIP-IF-NOT-DEFINED HAVE_CMYK_8 - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR name job-name "document-a4" - FILE pwg-raster-samples-150dpi/cmyk-8/document-a4-cmyk-8-150dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print document-a4 @ 150dpi, cmyk-8, deflate" - SKIP-IF-MISSING pwg-raster-samples-150dpi/cmyk-8/document-a4-cmyk-8-150dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_150DPI - SKIP-IF-NOT-DEFINED HAVE_CMYK_8 - SKIP-IF-NOT-DEFINED HAVE_DEFLATE - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR keyword compression deflate - ATTR name job-name "document-a4" - COMPRESSION deflate - FILE pwg-raster-samples-150dpi/cmyk-8/document-a4-cmyk-8-150dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print document-a4 @ 150dpi, cmyk-8, gzip" - SKIP-IF-MISSING pwg-raster-samples-150dpi/cmyk-8/document-a4-cmyk-8-150dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_150DPI - SKIP-IF-NOT-DEFINED HAVE_CMYK_8 - SKIP-IF-NOT-DEFINED HAVE_GZIP - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR keyword compression gzip - ATTR name job-name "document-a4" - COMPRESSION gzip - FILE pwg-raster-samples-150dpi/cmyk-8/document-a4-cmyk-8-150dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print document-a4 @ 150dpi, sgray-8" - SKIP-IF-MISSING pwg-raster-samples-150dpi/sgray-8/document-a4-sgray-8-150dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_150DPI - SKIP-IF-NOT-DEFINED HAVE_SGRAY_8 - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR name job-name "document-a4" - FILE pwg-raster-samples-150dpi/sgray-8/document-a4-sgray-8-150dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print document-a4 @ 150dpi, sgray-8, deflate" - SKIP-IF-MISSING pwg-raster-samples-150dpi/sgray-8/document-a4-sgray-8-150dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_150DPI - SKIP-IF-NOT-DEFINED HAVE_SGRAY_8 - SKIP-IF-NOT-DEFINED HAVE_DEFLATE - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR keyword compression deflate - ATTR name job-name "document-a4" - COMPRESSION deflate - FILE pwg-raster-samples-150dpi/sgray-8/document-a4-sgray-8-150dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print document-a4 @ 150dpi, sgray-8, gzip" - SKIP-IF-MISSING pwg-raster-samples-150dpi/sgray-8/document-a4-sgray-8-150dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_150DPI - SKIP-IF-NOT-DEFINED HAVE_SGRAY_8 - SKIP-IF-NOT-DEFINED HAVE_GZIP - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR keyword compression gzip - ATTR name job-name "document-a4" - COMPRESSION gzip - FILE pwg-raster-samples-150dpi/sgray-8/document-a4-sgray-8-150dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print document-a4 @ 150dpi, srgb-8" - SKIP-IF-MISSING pwg-raster-samples-150dpi/srgb-8/document-a4-srgb-8-150dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_150DPI - SKIP-IF-NOT-DEFINED HAVE_SRGB_8 - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR name job-name "document-a4" - FILE pwg-raster-samples-150dpi/srgb-8/document-a4-srgb-8-150dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print document-a4 @ 150dpi, srgb-8, deflate" - SKIP-IF-MISSING pwg-raster-samples-150dpi/srgb-8/document-a4-srgb-8-150dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_150DPI - SKIP-IF-NOT-DEFINED HAVE_SRGB_8 - SKIP-IF-NOT-DEFINED HAVE_DEFLATE - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR keyword compression deflate - ATTR name job-name "document-a4" - COMPRESSION deflate - FILE pwg-raster-samples-150dpi/srgb-8/document-a4-srgb-8-150dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print document-a4 @ 150dpi, srgb-8, gzip" - SKIP-IF-MISSING pwg-raster-samples-150dpi/srgb-8/document-a4-srgb-8-150dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_150DPI - SKIP-IF-NOT-DEFINED HAVE_SRGB_8 - SKIP-IF-NOT-DEFINED HAVE_GZIP - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR keyword compression gzip - ATTR name job-name "document-a4" - COMPRESSION gzip - FILE pwg-raster-samples-150dpi/srgb-8/document-a4-srgb-8-150dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print document-a4 @ 180dpi, black-1" - SKIP-IF-MISSING pwg-raster-samples-180dpi/black-1/document-a4-black-1-180dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_180DPI - SKIP-IF-NOT-DEFINED HAVE_BLACK_1 - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR name job-name "document-a4" - FILE pwg-raster-samples-180dpi/black-1/document-a4-black-1-180dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print document-a4 @ 180dpi, black-1, deflate" - SKIP-IF-MISSING pwg-raster-samples-180dpi/black-1/document-a4-black-1-180dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_180DPI - SKIP-IF-NOT-DEFINED HAVE_BLACK_1 - SKIP-IF-NOT-DEFINED HAVE_DEFLATE - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR keyword compression deflate - ATTR name job-name "document-a4" - COMPRESSION deflate - FILE pwg-raster-samples-180dpi/black-1/document-a4-black-1-180dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print document-a4 @ 180dpi, black-1, gzip" - SKIP-IF-MISSING pwg-raster-samples-180dpi/black-1/document-a4-black-1-180dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_180DPI - SKIP-IF-NOT-DEFINED HAVE_BLACK_1 - SKIP-IF-NOT-DEFINED HAVE_GZIP - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR keyword compression gzip - ATTR name job-name "document-a4" - COMPRESSION gzip - FILE pwg-raster-samples-180dpi/black-1/document-a4-black-1-180dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print document-a4 @ 180dpi, cmyk-8" - SKIP-IF-MISSING pwg-raster-samples-180dpi/cmyk-8/document-a4-cmyk-8-180dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_180DPI - SKIP-IF-NOT-DEFINED HAVE_CMYK_8 - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR name job-name "document-a4" - FILE pwg-raster-samples-180dpi/cmyk-8/document-a4-cmyk-8-180dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print document-a4 @ 180dpi, cmyk-8, deflate" - SKIP-IF-MISSING pwg-raster-samples-180dpi/cmyk-8/document-a4-cmyk-8-180dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_180DPI - SKIP-IF-NOT-DEFINED HAVE_CMYK_8 - SKIP-IF-NOT-DEFINED HAVE_DEFLATE - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR keyword compression deflate - ATTR name job-name "document-a4" - COMPRESSION deflate - FILE pwg-raster-samples-180dpi/cmyk-8/document-a4-cmyk-8-180dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print document-a4 @ 180dpi, cmyk-8, gzip" - SKIP-IF-MISSING pwg-raster-samples-180dpi/cmyk-8/document-a4-cmyk-8-180dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_180DPI - SKIP-IF-NOT-DEFINED HAVE_CMYK_8 - SKIP-IF-NOT-DEFINED HAVE_GZIP - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR keyword compression gzip - ATTR name job-name "document-a4" - COMPRESSION gzip - FILE pwg-raster-samples-180dpi/cmyk-8/document-a4-cmyk-8-180dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print document-a4 @ 180dpi, sgray-8" - SKIP-IF-MISSING pwg-raster-samples-180dpi/sgray-8/document-a4-sgray-8-180dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_180DPI - SKIP-IF-NOT-DEFINED HAVE_SGRAY_8 - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR name job-name "document-a4" - FILE pwg-raster-samples-180dpi/sgray-8/document-a4-sgray-8-180dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print document-a4 @ 180dpi, sgray-8, deflate" - SKIP-IF-MISSING pwg-raster-samples-180dpi/sgray-8/document-a4-sgray-8-180dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_180DPI - SKIP-IF-NOT-DEFINED HAVE_SGRAY_8 - SKIP-IF-NOT-DEFINED HAVE_DEFLATE - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR keyword compression deflate - ATTR name job-name "document-a4" - COMPRESSION deflate - FILE pwg-raster-samples-180dpi/sgray-8/document-a4-sgray-8-180dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print document-a4 @ 180dpi, sgray-8, gzip" - SKIP-IF-MISSING pwg-raster-samples-180dpi/sgray-8/document-a4-sgray-8-180dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_180DPI - SKIP-IF-NOT-DEFINED HAVE_SGRAY_8 - SKIP-IF-NOT-DEFINED HAVE_GZIP - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR keyword compression gzip - ATTR name job-name "document-a4" - COMPRESSION gzip - FILE pwg-raster-samples-180dpi/sgray-8/document-a4-sgray-8-180dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print document-a4 @ 180dpi, srgb-8" - SKIP-IF-MISSING pwg-raster-samples-180dpi/srgb-8/document-a4-srgb-8-180dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_180DPI - SKIP-IF-NOT-DEFINED HAVE_SRGB_8 - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR name job-name "document-a4" - FILE pwg-raster-samples-180dpi/srgb-8/document-a4-srgb-8-180dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print document-a4 @ 180dpi, srgb-8, deflate" - SKIP-IF-MISSING pwg-raster-samples-180dpi/srgb-8/document-a4-srgb-8-180dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_180DPI - SKIP-IF-NOT-DEFINED HAVE_SRGB_8 - SKIP-IF-NOT-DEFINED HAVE_DEFLATE - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR keyword compression deflate - ATTR name job-name "document-a4" - COMPRESSION deflate - FILE pwg-raster-samples-180dpi/srgb-8/document-a4-srgb-8-180dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print document-a4 @ 180dpi, srgb-8, gzip" - SKIP-IF-MISSING pwg-raster-samples-180dpi/srgb-8/document-a4-srgb-8-180dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_180DPI - SKIP-IF-NOT-DEFINED HAVE_SRGB_8 - SKIP-IF-NOT-DEFINED HAVE_GZIP - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR keyword compression gzip - ATTR name job-name "document-a4" - COMPRESSION gzip - FILE pwg-raster-samples-180dpi/srgb-8/document-a4-srgb-8-180dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print document-a4 @ 300dpi, black-1" - SKIP-IF-MISSING pwg-raster-samples-300dpi/black-1/document-a4-black-1-300dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_300DPI - SKIP-IF-NOT-DEFINED HAVE_BLACK_1 - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR name job-name "document-a4" - FILE pwg-raster-samples-300dpi/black-1/document-a4-black-1-300dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print document-a4 @ 300dpi, black-1, deflate" - SKIP-IF-MISSING pwg-raster-samples-300dpi/black-1/document-a4-black-1-300dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_300DPI - SKIP-IF-NOT-DEFINED HAVE_BLACK_1 - SKIP-IF-NOT-DEFINED HAVE_DEFLATE - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR keyword compression deflate - ATTR name job-name "document-a4" - COMPRESSION deflate - FILE pwg-raster-samples-300dpi/black-1/document-a4-black-1-300dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print document-a4 @ 300dpi, black-1, gzip" - SKIP-IF-MISSING pwg-raster-samples-300dpi/black-1/document-a4-black-1-300dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_300DPI - SKIP-IF-NOT-DEFINED HAVE_BLACK_1 - SKIP-IF-NOT-DEFINED HAVE_GZIP - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR keyword compression gzip - ATTR name job-name "document-a4" - COMPRESSION gzip - FILE pwg-raster-samples-300dpi/black-1/document-a4-black-1-300dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print document-a4 @ 300dpi, cmyk-8" - SKIP-IF-MISSING pwg-raster-samples-300dpi/cmyk-8/document-a4-cmyk-8-300dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_300DPI - SKIP-IF-NOT-DEFINED HAVE_CMYK_8 - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR name job-name "document-a4" - FILE pwg-raster-samples-300dpi/cmyk-8/document-a4-cmyk-8-300dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print document-a4 @ 300dpi, cmyk-8, deflate" - SKIP-IF-MISSING pwg-raster-samples-300dpi/cmyk-8/document-a4-cmyk-8-300dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_300DPI - SKIP-IF-NOT-DEFINED HAVE_CMYK_8 - SKIP-IF-NOT-DEFINED HAVE_DEFLATE - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR keyword compression deflate - ATTR name job-name "document-a4" - COMPRESSION deflate - FILE pwg-raster-samples-300dpi/cmyk-8/document-a4-cmyk-8-300dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print document-a4 @ 300dpi, cmyk-8, gzip" - SKIP-IF-MISSING pwg-raster-samples-300dpi/cmyk-8/document-a4-cmyk-8-300dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_300DPI - SKIP-IF-NOT-DEFINED HAVE_CMYK_8 - SKIP-IF-NOT-DEFINED HAVE_GZIP - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR keyword compression gzip - ATTR name job-name "document-a4" - COMPRESSION gzip - FILE pwg-raster-samples-300dpi/cmyk-8/document-a4-cmyk-8-300dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print document-a4 @ 300dpi, sgray-8" - SKIP-IF-MISSING pwg-raster-samples-300dpi/sgray-8/document-a4-sgray-8-300dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_300DPI - SKIP-IF-NOT-DEFINED HAVE_SGRAY_8 - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR name job-name "document-a4" - FILE pwg-raster-samples-300dpi/sgray-8/document-a4-sgray-8-300dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print document-a4 @ 300dpi, sgray-8, deflate" - SKIP-IF-MISSING pwg-raster-samples-300dpi/sgray-8/document-a4-sgray-8-300dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_300DPI - SKIP-IF-NOT-DEFINED HAVE_SGRAY_8 - SKIP-IF-NOT-DEFINED HAVE_DEFLATE - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR keyword compression deflate - ATTR name job-name "document-a4" - COMPRESSION deflate - FILE pwg-raster-samples-300dpi/sgray-8/document-a4-sgray-8-300dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print document-a4 @ 300dpi, sgray-8, gzip" - SKIP-IF-MISSING pwg-raster-samples-300dpi/sgray-8/document-a4-sgray-8-300dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_300DPI - SKIP-IF-NOT-DEFINED HAVE_SGRAY_8 - SKIP-IF-NOT-DEFINED HAVE_GZIP - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR keyword compression gzip - ATTR name job-name "document-a4" - COMPRESSION gzip - FILE pwg-raster-samples-300dpi/sgray-8/document-a4-sgray-8-300dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print document-a4 @ 300dpi, srgb-8" - SKIP-IF-MISSING pwg-raster-samples-300dpi/srgb-8/document-a4-srgb-8-300dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_300DPI - SKIP-IF-NOT-DEFINED HAVE_SRGB_8 - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR name job-name "document-a4" - FILE pwg-raster-samples-300dpi/srgb-8/document-a4-srgb-8-300dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print document-a4 @ 300dpi, srgb-8, deflate" - SKIP-IF-MISSING pwg-raster-samples-300dpi/srgb-8/document-a4-srgb-8-300dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_300DPI - SKIP-IF-NOT-DEFINED HAVE_SRGB_8 - SKIP-IF-NOT-DEFINED HAVE_DEFLATE - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR keyword compression deflate - ATTR name job-name "document-a4" - COMPRESSION deflate - FILE pwg-raster-samples-300dpi/srgb-8/document-a4-srgb-8-300dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print document-a4 @ 300dpi, srgb-8, gzip" - SKIP-IF-MISSING pwg-raster-samples-300dpi/srgb-8/document-a4-srgb-8-300dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_300DPI - SKIP-IF-NOT-DEFINED HAVE_SRGB_8 - SKIP-IF-NOT-DEFINED HAVE_GZIP - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR keyword compression gzip - ATTR name job-name "document-a4" - COMPRESSION gzip - FILE pwg-raster-samples-300dpi/srgb-8/document-a4-srgb-8-300dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print document-a4 @ 360dpi, black-1" - SKIP-IF-MISSING pwg-raster-samples-360dpi/black-1/document-a4-black-1-360dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_360DPI - SKIP-IF-NOT-DEFINED HAVE_BLACK_1 - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR name job-name "document-a4" - FILE pwg-raster-samples-360dpi/black-1/document-a4-black-1-360dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print document-a4 @ 360dpi, black-1, deflate" - SKIP-IF-MISSING pwg-raster-samples-360dpi/black-1/document-a4-black-1-360dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_360DPI - SKIP-IF-NOT-DEFINED HAVE_BLACK_1 - SKIP-IF-NOT-DEFINED HAVE_DEFLATE - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR keyword compression deflate - ATTR name job-name "document-a4" - COMPRESSION deflate - FILE pwg-raster-samples-360dpi/black-1/document-a4-black-1-360dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print document-a4 @ 360dpi, black-1, gzip" - SKIP-IF-MISSING pwg-raster-samples-360dpi/black-1/document-a4-black-1-360dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_360DPI - SKIP-IF-NOT-DEFINED HAVE_BLACK_1 - SKIP-IF-NOT-DEFINED HAVE_GZIP - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR keyword compression gzip - ATTR name job-name "document-a4" - COMPRESSION gzip - FILE pwg-raster-samples-360dpi/black-1/document-a4-black-1-360dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print document-a4 @ 360dpi, cmyk-8" - SKIP-IF-MISSING pwg-raster-samples-360dpi/cmyk-8/document-a4-cmyk-8-360dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_360DPI - SKIP-IF-NOT-DEFINED HAVE_CMYK_8 - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR name job-name "document-a4" - FILE pwg-raster-samples-360dpi/cmyk-8/document-a4-cmyk-8-360dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print document-a4 @ 360dpi, cmyk-8, deflate" - SKIP-IF-MISSING pwg-raster-samples-360dpi/cmyk-8/document-a4-cmyk-8-360dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_360DPI - SKIP-IF-NOT-DEFINED HAVE_CMYK_8 - SKIP-IF-NOT-DEFINED HAVE_DEFLATE - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR keyword compression deflate - ATTR name job-name "document-a4" - COMPRESSION deflate - FILE pwg-raster-samples-360dpi/cmyk-8/document-a4-cmyk-8-360dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print document-a4 @ 360dpi, cmyk-8, gzip" - SKIP-IF-MISSING pwg-raster-samples-360dpi/cmyk-8/document-a4-cmyk-8-360dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_360DPI - SKIP-IF-NOT-DEFINED HAVE_CMYK_8 - SKIP-IF-NOT-DEFINED HAVE_GZIP - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR keyword compression gzip - ATTR name job-name "document-a4" - COMPRESSION gzip - FILE pwg-raster-samples-360dpi/cmyk-8/document-a4-cmyk-8-360dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print document-a4 @ 360dpi, sgray-8" - SKIP-IF-MISSING pwg-raster-samples-360dpi/sgray-8/document-a4-sgray-8-360dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_360DPI - SKIP-IF-NOT-DEFINED HAVE_SGRAY_8 - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR name job-name "document-a4" - FILE pwg-raster-samples-360dpi/sgray-8/document-a4-sgray-8-360dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print document-a4 @ 360dpi, sgray-8, deflate" - SKIP-IF-MISSING pwg-raster-samples-360dpi/sgray-8/document-a4-sgray-8-360dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_360DPI - SKIP-IF-NOT-DEFINED HAVE_SGRAY_8 - SKIP-IF-NOT-DEFINED HAVE_DEFLATE - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR keyword compression deflate - ATTR name job-name "document-a4" - COMPRESSION deflate - FILE pwg-raster-samples-360dpi/sgray-8/document-a4-sgray-8-360dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print document-a4 @ 360dpi, sgray-8, gzip" - SKIP-IF-MISSING pwg-raster-samples-360dpi/sgray-8/document-a4-sgray-8-360dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_360DPI - SKIP-IF-NOT-DEFINED HAVE_SGRAY_8 - SKIP-IF-NOT-DEFINED HAVE_GZIP - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR keyword compression gzip - ATTR name job-name "document-a4" - COMPRESSION gzip - FILE pwg-raster-samples-360dpi/sgray-8/document-a4-sgray-8-360dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print document-a4 @ 360dpi, srgb-8" - SKIP-IF-MISSING pwg-raster-samples-360dpi/srgb-8/document-a4-srgb-8-360dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_360DPI - SKIP-IF-NOT-DEFINED HAVE_SRGB_8 - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR name job-name "document-a4" - FILE pwg-raster-samples-360dpi/srgb-8/document-a4-srgb-8-360dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print document-a4 @ 360dpi, srgb-8, deflate" - SKIP-IF-MISSING pwg-raster-samples-360dpi/srgb-8/document-a4-srgb-8-360dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_360DPI - SKIP-IF-NOT-DEFINED HAVE_SRGB_8 - SKIP-IF-NOT-DEFINED HAVE_DEFLATE - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR keyword compression deflate - ATTR name job-name "document-a4" - COMPRESSION deflate - FILE pwg-raster-samples-360dpi/srgb-8/document-a4-srgb-8-360dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print document-a4 @ 360dpi, srgb-8, gzip" - SKIP-IF-MISSING pwg-raster-samples-360dpi/srgb-8/document-a4-srgb-8-360dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_360DPI - SKIP-IF-NOT-DEFINED HAVE_SRGB_8 - SKIP-IF-NOT-DEFINED HAVE_GZIP - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR keyword compression gzip - ATTR name job-name "document-a4" - COMPRESSION gzip - FILE pwg-raster-samples-360dpi/srgb-8/document-a4-srgb-8-360dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print document-a4 @ 600dpi, black-1" - SKIP-IF-MISSING pwg-raster-samples-600dpi/black-1/document-a4-black-1-600dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_600DPI - SKIP-IF-NOT-DEFINED HAVE_BLACK_1 - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR name job-name "document-a4" - FILE pwg-raster-samples-600dpi/black-1/document-a4-black-1-600dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print document-a4 @ 600dpi, black-1, deflate" - SKIP-IF-MISSING pwg-raster-samples-600dpi/black-1/document-a4-black-1-600dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_600DPI - SKIP-IF-NOT-DEFINED HAVE_BLACK_1 - SKIP-IF-NOT-DEFINED HAVE_DEFLATE - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR keyword compression deflate - ATTR name job-name "document-a4" - COMPRESSION deflate - FILE pwg-raster-samples-600dpi/black-1/document-a4-black-1-600dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print document-a4 @ 600dpi, black-1, gzip" - SKIP-IF-MISSING pwg-raster-samples-600dpi/black-1/document-a4-black-1-600dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_600DPI - SKIP-IF-NOT-DEFINED HAVE_BLACK_1 - SKIP-IF-NOT-DEFINED HAVE_GZIP - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR keyword compression gzip - ATTR name job-name "document-a4" - COMPRESSION gzip - FILE pwg-raster-samples-600dpi/black-1/document-a4-black-1-600dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print document-a4 @ 600dpi, cmyk-8" - SKIP-IF-MISSING pwg-raster-samples-600dpi/cmyk-8/document-a4-cmyk-8-600dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_600DPI - SKIP-IF-NOT-DEFINED HAVE_CMYK_8 - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR name job-name "document-a4" - FILE pwg-raster-samples-600dpi/cmyk-8/document-a4-cmyk-8-600dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print document-a4 @ 600dpi, cmyk-8, deflate" - SKIP-IF-MISSING pwg-raster-samples-600dpi/cmyk-8/document-a4-cmyk-8-600dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_600DPI - SKIP-IF-NOT-DEFINED HAVE_CMYK_8 - SKIP-IF-NOT-DEFINED HAVE_DEFLATE - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR keyword compression deflate - ATTR name job-name "document-a4" - COMPRESSION deflate - FILE pwg-raster-samples-600dpi/cmyk-8/document-a4-cmyk-8-600dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print document-a4 @ 600dpi, cmyk-8, gzip" - SKIP-IF-MISSING pwg-raster-samples-600dpi/cmyk-8/document-a4-cmyk-8-600dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_600DPI - SKIP-IF-NOT-DEFINED HAVE_CMYK_8 - SKIP-IF-NOT-DEFINED HAVE_GZIP - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR keyword compression gzip - ATTR name job-name "document-a4" - COMPRESSION gzip - FILE pwg-raster-samples-600dpi/cmyk-8/document-a4-cmyk-8-600dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print document-a4 @ 600dpi, sgray-8" - SKIP-IF-MISSING pwg-raster-samples-600dpi/sgray-8/document-a4-sgray-8-600dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_600DPI - SKIP-IF-NOT-DEFINED HAVE_SGRAY_8 - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR name job-name "document-a4" - FILE pwg-raster-samples-600dpi/sgray-8/document-a4-sgray-8-600dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print document-a4 @ 600dpi, sgray-8, deflate" - SKIP-IF-MISSING pwg-raster-samples-600dpi/sgray-8/document-a4-sgray-8-600dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_600DPI - SKIP-IF-NOT-DEFINED HAVE_SGRAY_8 - SKIP-IF-NOT-DEFINED HAVE_DEFLATE - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR keyword compression deflate - ATTR name job-name "document-a4" - COMPRESSION deflate - FILE pwg-raster-samples-600dpi/sgray-8/document-a4-sgray-8-600dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print document-a4 @ 600dpi, sgray-8, gzip" - SKIP-IF-MISSING pwg-raster-samples-600dpi/sgray-8/document-a4-sgray-8-600dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_600DPI - SKIP-IF-NOT-DEFINED HAVE_SGRAY_8 - SKIP-IF-NOT-DEFINED HAVE_GZIP - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR keyword compression gzip - ATTR name job-name "document-a4" - COMPRESSION gzip - FILE pwg-raster-samples-600dpi/sgray-8/document-a4-sgray-8-600dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print document-a4 @ 600dpi, srgb-8" - SKIP-IF-MISSING pwg-raster-samples-600dpi/srgb-8/document-a4-srgb-8-600dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_600DPI - SKIP-IF-NOT-DEFINED HAVE_SRGB_8 - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR name job-name "document-a4" - FILE pwg-raster-samples-600dpi/srgb-8/document-a4-srgb-8-600dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print document-a4 @ 600dpi, srgb-8, deflate" - SKIP-IF-MISSING pwg-raster-samples-600dpi/srgb-8/document-a4-srgb-8-600dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_600DPI - SKIP-IF-NOT-DEFINED HAVE_SRGB_8 - SKIP-IF-NOT-DEFINED HAVE_DEFLATE - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR keyword compression deflate - ATTR name job-name "document-a4" - COMPRESSION deflate - FILE pwg-raster-samples-600dpi/srgb-8/document-a4-srgb-8-600dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print document-a4 @ 600dpi, srgb-8, gzip" - SKIP-IF-MISSING pwg-raster-samples-600dpi/srgb-8/document-a4-srgb-8-600dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_600DPI - SKIP-IF-NOT-DEFINED HAVE_SRGB_8 - SKIP-IF-NOT-DEFINED HAVE_GZIP - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR keyword compression gzip - ATTR name job-name "document-a4" - COMPRESSION gzip - FILE pwg-raster-samples-600dpi/srgb-8/document-a4-srgb-8-600dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print document-a4 @ 720dpi, black-1" - SKIP-IF-MISSING pwg-raster-samples-720dpi/black-1/document-a4-black-1-720dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_720DPI - SKIP-IF-NOT-DEFINED HAVE_BLACK_1 - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR name job-name "document-a4" - FILE pwg-raster-samples-720dpi/black-1/document-a4-black-1-720dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print document-a4 @ 720dpi, black-1, deflate" - SKIP-IF-MISSING pwg-raster-samples-720dpi/black-1/document-a4-black-1-720dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_720DPI - SKIP-IF-NOT-DEFINED HAVE_BLACK_1 - SKIP-IF-NOT-DEFINED HAVE_DEFLATE - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR keyword compression deflate - ATTR name job-name "document-a4" - COMPRESSION deflate - FILE pwg-raster-samples-720dpi/black-1/document-a4-black-1-720dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print document-a4 @ 720dpi, black-1, gzip" - SKIP-IF-MISSING pwg-raster-samples-720dpi/black-1/document-a4-black-1-720dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_720DPI - SKIP-IF-NOT-DEFINED HAVE_BLACK_1 - SKIP-IF-NOT-DEFINED HAVE_GZIP - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR keyword compression gzip - ATTR name job-name "document-a4" - COMPRESSION gzip - FILE pwg-raster-samples-720dpi/black-1/document-a4-black-1-720dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print document-a4 @ 720dpi, cmyk-8" - SKIP-IF-MISSING pwg-raster-samples-720dpi/cmyk-8/document-a4-cmyk-8-720dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_720DPI - SKIP-IF-NOT-DEFINED HAVE_CMYK_8 - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR name job-name "document-a4" - FILE pwg-raster-samples-720dpi/cmyk-8/document-a4-cmyk-8-720dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print document-a4 @ 720dpi, cmyk-8, deflate" - SKIP-IF-MISSING pwg-raster-samples-720dpi/cmyk-8/document-a4-cmyk-8-720dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_720DPI - SKIP-IF-NOT-DEFINED HAVE_CMYK_8 - SKIP-IF-NOT-DEFINED HAVE_DEFLATE - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR keyword compression deflate - ATTR name job-name "document-a4" - COMPRESSION deflate - FILE pwg-raster-samples-720dpi/cmyk-8/document-a4-cmyk-8-720dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print document-a4 @ 720dpi, cmyk-8, gzip" - SKIP-IF-MISSING pwg-raster-samples-720dpi/cmyk-8/document-a4-cmyk-8-720dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_720DPI - SKIP-IF-NOT-DEFINED HAVE_CMYK_8 - SKIP-IF-NOT-DEFINED HAVE_GZIP - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR keyword compression gzip - ATTR name job-name "document-a4" - COMPRESSION gzip - FILE pwg-raster-samples-720dpi/cmyk-8/document-a4-cmyk-8-720dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print document-a4 @ 720dpi, sgray-8" - SKIP-IF-MISSING pwg-raster-samples-720dpi/sgray-8/document-a4-sgray-8-720dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_720DPI - SKIP-IF-NOT-DEFINED HAVE_SGRAY_8 - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR name job-name "document-a4" - FILE pwg-raster-samples-720dpi/sgray-8/document-a4-sgray-8-720dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print document-a4 @ 720dpi, sgray-8, deflate" - SKIP-IF-MISSING pwg-raster-samples-720dpi/sgray-8/document-a4-sgray-8-720dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_720DPI - SKIP-IF-NOT-DEFINED HAVE_SGRAY_8 - SKIP-IF-NOT-DEFINED HAVE_DEFLATE - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR keyword compression deflate - ATTR name job-name "document-a4" - COMPRESSION deflate - FILE pwg-raster-samples-720dpi/sgray-8/document-a4-sgray-8-720dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print document-a4 @ 720dpi, sgray-8, gzip" - SKIP-IF-MISSING pwg-raster-samples-720dpi/sgray-8/document-a4-sgray-8-720dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_720DPI - SKIP-IF-NOT-DEFINED HAVE_SGRAY_8 - SKIP-IF-NOT-DEFINED HAVE_GZIP - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR keyword compression gzip - ATTR name job-name "document-a4" - COMPRESSION gzip - FILE pwg-raster-samples-720dpi/sgray-8/document-a4-sgray-8-720dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print document-a4 @ 720dpi, srgb-8" - SKIP-IF-MISSING pwg-raster-samples-720dpi/srgb-8/document-a4-srgb-8-720dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_720DPI - SKIP-IF-NOT-DEFINED HAVE_SRGB_8 - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR name job-name "document-a4" - FILE pwg-raster-samples-720dpi/srgb-8/document-a4-srgb-8-720dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print document-a4 @ 720dpi, srgb-8, deflate" - SKIP-IF-MISSING pwg-raster-samples-720dpi/srgb-8/document-a4-srgb-8-720dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_720DPI - SKIP-IF-NOT-DEFINED HAVE_SRGB_8 - SKIP-IF-NOT-DEFINED HAVE_DEFLATE - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR keyword compression deflate - ATTR name job-name "document-a4" - COMPRESSION deflate - FILE pwg-raster-samples-720dpi/srgb-8/document-a4-srgb-8-720dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print document-a4 @ 720dpi, srgb-8, gzip" - SKIP-IF-MISSING pwg-raster-samples-720dpi/srgb-8/document-a4-srgb-8-720dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_720DPI - SKIP-IF-NOT-DEFINED HAVE_SRGB_8 - SKIP-IF-NOT-DEFINED HAVE_GZIP - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR keyword compression gzip - ATTR name job-name "document-a4" - COMPRESSION gzip - FILE pwg-raster-samples-720dpi/srgb-8/document-a4-srgb-8-720dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print document-letter @ 150dpi, black-1" - SKIP-IF-MISSING pwg-raster-samples-150dpi/black-1/document-letter-black-1-150dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_150DPI - SKIP-IF-NOT-DEFINED HAVE_BLACK_1 - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR name job-name "document-letter" - FILE pwg-raster-samples-150dpi/black-1/document-letter-black-1-150dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print document-letter @ 150dpi, black-1, deflate" - SKIP-IF-MISSING pwg-raster-samples-150dpi/black-1/document-letter-black-1-150dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_150DPI - SKIP-IF-NOT-DEFINED HAVE_BLACK_1 - SKIP-IF-NOT-DEFINED HAVE_DEFLATE - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR keyword compression deflate - ATTR name job-name "document-letter" - COMPRESSION deflate - FILE pwg-raster-samples-150dpi/black-1/document-letter-black-1-150dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print document-letter @ 150dpi, black-1, gzip" - SKIP-IF-MISSING pwg-raster-samples-150dpi/black-1/document-letter-black-1-150dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_150DPI - SKIP-IF-NOT-DEFINED HAVE_BLACK_1 - SKIP-IF-NOT-DEFINED HAVE_GZIP - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR keyword compression gzip - ATTR name job-name "document-letter" - COMPRESSION gzip - FILE pwg-raster-samples-150dpi/black-1/document-letter-black-1-150dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print document-letter @ 150dpi, cmyk-8" - SKIP-IF-MISSING pwg-raster-samples-150dpi/cmyk-8/document-letter-cmyk-8-150dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_150DPI - SKIP-IF-NOT-DEFINED HAVE_CMYK_8 - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR name job-name "document-letter" - FILE pwg-raster-samples-150dpi/cmyk-8/document-letter-cmyk-8-150dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print document-letter @ 150dpi, cmyk-8, deflate" - SKIP-IF-MISSING pwg-raster-samples-150dpi/cmyk-8/document-letter-cmyk-8-150dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_150DPI - SKIP-IF-NOT-DEFINED HAVE_CMYK_8 - SKIP-IF-NOT-DEFINED HAVE_DEFLATE - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR keyword compression deflate - ATTR name job-name "document-letter" - COMPRESSION deflate - FILE pwg-raster-samples-150dpi/cmyk-8/document-letter-cmyk-8-150dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print document-letter @ 150dpi, cmyk-8, gzip" - SKIP-IF-MISSING pwg-raster-samples-150dpi/cmyk-8/document-letter-cmyk-8-150dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_150DPI - SKIP-IF-NOT-DEFINED HAVE_CMYK_8 - SKIP-IF-NOT-DEFINED HAVE_GZIP - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR keyword compression gzip - ATTR name job-name "document-letter" - COMPRESSION gzip - FILE pwg-raster-samples-150dpi/cmyk-8/document-letter-cmyk-8-150dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print document-letter @ 150dpi, sgray-8" - SKIP-IF-MISSING pwg-raster-samples-150dpi/sgray-8/document-letter-sgray-8-150dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_150DPI - SKIP-IF-NOT-DEFINED HAVE_SGRAY_8 - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR name job-name "document-letter" - FILE pwg-raster-samples-150dpi/sgray-8/document-letter-sgray-8-150dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print document-letter @ 150dpi, sgray-8, deflate" - SKIP-IF-MISSING pwg-raster-samples-150dpi/sgray-8/document-letter-sgray-8-150dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_150DPI - SKIP-IF-NOT-DEFINED HAVE_SGRAY_8 - SKIP-IF-NOT-DEFINED HAVE_DEFLATE - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR keyword compression deflate - ATTR name job-name "document-letter" - COMPRESSION deflate - FILE pwg-raster-samples-150dpi/sgray-8/document-letter-sgray-8-150dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print document-letter @ 150dpi, sgray-8, gzip" - SKIP-IF-MISSING pwg-raster-samples-150dpi/sgray-8/document-letter-sgray-8-150dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_150DPI - SKIP-IF-NOT-DEFINED HAVE_SGRAY_8 - SKIP-IF-NOT-DEFINED HAVE_GZIP - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR keyword compression gzip - ATTR name job-name "document-letter" - COMPRESSION gzip - FILE pwg-raster-samples-150dpi/sgray-8/document-letter-sgray-8-150dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print document-letter @ 150dpi, srgb-8" - SKIP-IF-MISSING pwg-raster-samples-150dpi/srgb-8/document-letter-srgb-8-150dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_150DPI - SKIP-IF-NOT-DEFINED HAVE_SRGB_8 - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR name job-name "document-letter" - FILE pwg-raster-samples-150dpi/srgb-8/document-letter-srgb-8-150dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print document-letter @ 150dpi, srgb-8, deflate" - SKIP-IF-MISSING pwg-raster-samples-150dpi/srgb-8/document-letter-srgb-8-150dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_150DPI - SKIP-IF-NOT-DEFINED HAVE_SRGB_8 - SKIP-IF-NOT-DEFINED HAVE_DEFLATE - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR keyword compression deflate - ATTR name job-name "document-letter" - COMPRESSION deflate - FILE pwg-raster-samples-150dpi/srgb-8/document-letter-srgb-8-150dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print document-letter @ 150dpi, srgb-8, gzip" - SKIP-IF-MISSING pwg-raster-samples-150dpi/srgb-8/document-letter-srgb-8-150dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_150DPI - SKIP-IF-NOT-DEFINED HAVE_SRGB_8 - SKIP-IF-NOT-DEFINED HAVE_GZIP - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR keyword compression gzip - ATTR name job-name "document-letter" - COMPRESSION gzip - FILE pwg-raster-samples-150dpi/srgb-8/document-letter-srgb-8-150dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print document-letter @ 180dpi, black-1" - SKIP-IF-MISSING pwg-raster-samples-180dpi/black-1/document-letter-black-1-180dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_180DPI - SKIP-IF-NOT-DEFINED HAVE_BLACK_1 - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR name job-name "document-letter" - FILE pwg-raster-samples-180dpi/black-1/document-letter-black-1-180dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print document-letter @ 180dpi, black-1, deflate" - SKIP-IF-MISSING pwg-raster-samples-180dpi/black-1/document-letter-black-1-180dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_180DPI - SKIP-IF-NOT-DEFINED HAVE_BLACK_1 - SKIP-IF-NOT-DEFINED HAVE_DEFLATE - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR keyword compression deflate - ATTR name job-name "document-letter" - COMPRESSION deflate - FILE pwg-raster-samples-180dpi/black-1/document-letter-black-1-180dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print document-letter @ 180dpi, black-1, gzip" - SKIP-IF-MISSING pwg-raster-samples-180dpi/black-1/document-letter-black-1-180dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_180DPI - SKIP-IF-NOT-DEFINED HAVE_BLACK_1 - SKIP-IF-NOT-DEFINED HAVE_GZIP - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR keyword compression gzip - ATTR name job-name "document-letter" - COMPRESSION gzip - FILE pwg-raster-samples-180dpi/black-1/document-letter-black-1-180dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print document-letter @ 180dpi, cmyk-8" - SKIP-IF-MISSING pwg-raster-samples-180dpi/cmyk-8/document-letter-cmyk-8-180dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_180DPI - SKIP-IF-NOT-DEFINED HAVE_CMYK_8 - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR name job-name "document-letter" - FILE pwg-raster-samples-180dpi/cmyk-8/document-letter-cmyk-8-180dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print document-letter @ 180dpi, cmyk-8, deflate" - SKIP-IF-MISSING pwg-raster-samples-180dpi/cmyk-8/document-letter-cmyk-8-180dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_180DPI - SKIP-IF-NOT-DEFINED HAVE_CMYK_8 - SKIP-IF-NOT-DEFINED HAVE_DEFLATE - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR keyword compression deflate - ATTR name job-name "document-letter" - COMPRESSION deflate - FILE pwg-raster-samples-180dpi/cmyk-8/document-letter-cmyk-8-180dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print document-letter @ 180dpi, cmyk-8, gzip" - SKIP-IF-MISSING pwg-raster-samples-180dpi/cmyk-8/document-letter-cmyk-8-180dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_180DPI - SKIP-IF-NOT-DEFINED HAVE_CMYK_8 - SKIP-IF-NOT-DEFINED HAVE_GZIP - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR keyword compression gzip - ATTR name job-name "document-letter" - COMPRESSION gzip - FILE pwg-raster-samples-180dpi/cmyk-8/document-letter-cmyk-8-180dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print document-letter @ 180dpi, sgray-8" - SKIP-IF-MISSING pwg-raster-samples-180dpi/sgray-8/document-letter-sgray-8-180dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_180DPI - SKIP-IF-NOT-DEFINED HAVE_SGRAY_8 - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR name job-name "document-letter" - FILE pwg-raster-samples-180dpi/sgray-8/document-letter-sgray-8-180dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print document-letter @ 180dpi, sgray-8, deflate" - SKIP-IF-MISSING pwg-raster-samples-180dpi/sgray-8/document-letter-sgray-8-180dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_180DPI - SKIP-IF-NOT-DEFINED HAVE_SGRAY_8 - SKIP-IF-NOT-DEFINED HAVE_DEFLATE - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR keyword compression deflate - ATTR name job-name "document-letter" - COMPRESSION deflate - FILE pwg-raster-samples-180dpi/sgray-8/document-letter-sgray-8-180dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print document-letter @ 180dpi, sgray-8, gzip" - SKIP-IF-MISSING pwg-raster-samples-180dpi/sgray-8/document-letter-sgray-8-180dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_180DPI - SKIP-IF-NOT-DEFINED HAVE_SGRAY_8 - SKIP-IF-NOT-DEFINED HAVE_GZIP - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR keyword compression gzip - ATTR name job-name "document-letter" - COMPRESSION gzip - FILE pwg-raster-samples-180dpi/sgray-8/document-letter-sgray-8-180dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print document-letter @ 180dpi, srgb-8" - SKIP-IF-MISSING pwg-raster-samples-180dpi/srgb-8/document-letter-srgb-8-180dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_180DPI - SKIP-IF-NOT-DEFINED HAVE_SRGB_8 - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR name job-name "document-letter" - FILE pwg-raster-samples-180dpi/srgb-8/document-letter-srgb-8-180dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print document-letter @ 180dpi, srgb-8, deflate" - SKIP-IF-MISSING pwg-raster-samples-180dpi/srgb-8/document-letter-srgb-8-180dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_180DPI - SKIP-IF-NOT-DEFINED HAVE_SRGB_8 - SKIP-IF-NOT-DEFINED HAVE_DEFLATE - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR keyword compression deflate - ATTR name job-name "document-letter" - COMPRESSION deflate - FILE pwg-raster-samples-180dpi/srgb-8/document-letter-srgb-8-180dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print document-letter @ 180dpi, srgb-8, gzip" - SKIP-IF-MISSING pwg-raster-samples-180dpi/srgb-8/document-letter-srgb-8-180dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_180DPI - SKIP-IF-NOT-DEFINED HAVE_SRGB_8 - SKIP-IF-NOT-DEFINED HAVE_GZIP - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR keyword compression gzip - ATTR name job-name "document-letter" - COMPRESSION gzip - FILE pwg-raster-samples-180dpi/srgb-8/document-letter-srgb-8-180dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print document-letter @ 300dpi, black-1" - SKIP-IF-MISSING pwg-raster-samples-300dpi/black-1/document-letter-black-1-300dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_300DPI - SKIP-IF-NOT-DEFINED HAVE_BLACK_1 - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR name job-name "document-letter" - FILE pwg-raster-samples-300dpi/black-1/document-letter-black-1-300dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print document-letter @ 300dpi, black-1, deflate" - SKIP-IF-MISSING pwg-raster-samples-300dpi/black-1/document-letter-black-1-300dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_300DPI - SKIP-IF-NOT-DEFINED HAVE_BLACK_1 - SKIP-IF-NOT-DEFINED HAVE_DEFLATE - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR keyword compression deflate - ATTR name job-name "document-letter" - COMPRESSION deflate - FILE pwg-raster-samples-300dpi/black-1/document-letter-black-1-300dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print document-letter @ 300dpi, black-1, gzip" - SKIP-IF-MISSING pwg-raster-samples-300dpi/black-1/document-letter-black-1-300dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_300DPI - SKIP-IF-NOT-DEFINED HAVE_BLACK_1 - SKIP-IF-NOT-DEFINED HAVE_GZIP - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR keyword compression gzip - ATTR name job-name "document-letter" - COMPRESSION gzip - FILE pwg-raster-samples-300dpi/black-1/document-letter-black-1-300dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print document-letter @ 300dpi, cmyk-8" - SKIP-IF-MISSING pwg-raster-samples-300dpi/cmyk-8/document-letter-cmyk-8-300dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_300DPI - SKIP-IF-NOT-DEFINED HAVE_CMYK_8 - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR name job-name "document-letter" - FILE pwg-raster-samples-300dpi/cmyk-8/document-letter-cmyk-8-300dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print document-letter @ 300dpi, cmyk-8, deflate" - SKIP-IF-MISSING pwg-raster-samples-300dpi/cmyk-8/document-letter-cmyk-8-300dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_300DPI - SKIP-IF-NOT-DEFINED HAVE_CMYK_8 - SKIP-IF-NOT-DEFINED HAVE_DEFLATE - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR keyword compression deflate - ATTR name job-name "document-letter" - COMPRESSION deflate - FILE pwg-raster-samples-300dpi/cmyk-8/document-letter-cmyk-8-300dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print document-letter @ 300dpi, cmyk-8, gzip" - SKIP-IF-MISSING pwg-raster-samples-300dpi/cmyk-8/document-letter-cmyk-8-300dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_300DPI - SKIP-IF-NOT-DEFINED HAVE_CMYK_8 - SKIP-IF-NOT-DEFINED HAVE_GZIP - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR keyword compression gzip - ATTR name job-name "document-letter" - COMPRESSION gzip - FILE pwg-raster-samples-300dpi/cmyk-8/document-letter-cmyk-8-300dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print document-letter @ 300dpi, sgray-8" - SKIP-IF-MISSING pwg-raster-samples-300dpi/sgray-8/document-letter-sgray-8-300dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_300DPI - SKIP-IF-NOT-DEFINED HAVE_SGRAY_8 - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR name job-name "document-letter" - FILE pwg-raster-samples-300dpi/sgray-8/document-letter-sgray-8-300dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print document-letter @ 300dpi, sgray-8, deflate" - SKIP-IF-MISSING pwg-raster-samples-300dpi/sgray-8/document-letter-sgray-8-300dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_300DPI - SKIP-IF-NOT-DEFINED HAVE_SGRAY_8 - SKIP-IF-NOT-DEFINED HAVE_DEFLATE - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR keyword compression deflate - ATTR name job-name "document-letter" - COMPRESSION deflate - FILE pwg-raster-samples-300dpi/sgray-8/document-letter-sgray-8-300dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print document-letter @ 300dpi, sgray-8, gzip" - SKIP-IF-MISSING pwg-raster-samples-300dpi/sgray-8/document-letter-sgray-8-300dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_300DPI - SKIP-IF-NOT-DEFINED HAVE_SGRAY_8 - SKIP-IF-NOT-DEFINED HAVE_GZIP - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR keyword compression gzip - ATTR name job-name "document-letter" - COMPRESSION gzip - FILE pwg-raster-samples-300dpi/sgray-8/document-letter-sgray-8-300dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print document-letter @ 300dpi, srgb-8" - SKIP-IF-MISSING pwg-raster-samples-300dpi/srgb-8/document-letter-srgb-8-300dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_300DPI - SKIP-IF-NOT-DEFINED HAVE_SRGB_8 - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR name job-name "document-letter" - FILE pwg-raster-samples-300dpi/srgb-8/document-letter-srgb-8-300dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print document-letter @ 300dpi, srgb-8, deflate" - SKIP-IF-MISSING pwg-raster-samples-300dpi/srgb-8/document-letter-srgb-8-300dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_300DPI - SKIP-IF-NOT-DEFINED HAVE_SRGB_8 - SKIP-IF-NOT-DEFINED HAVE_DEFLATE - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR keyword compression deflate - ATTR name job-name "document-letter" - COMPRESSION deflate - FILE pwg-raster-samples-300dpi/srgb-8/document-letter-srgb-8-300dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print document-letter @ 300dpi, srgb-8, gzip" - SKIP-IF-MISSING pwg-raster-samples-300dpi/srgb-8/document-letter-srgb-8-300dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_300DPI - SKIP-IF-NOT-DEFINED HAVE_SRGB_8 - SKIP-IF-NOT-DEFINED HAVE_GZIP - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR keyword compression gzip - ATTR name job-name "document-letter" - COMPRESSION gzip - FILE pwg-raster-samples-300dpi/srgb-8/document-letter-srgb-8-300dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print document-letter @ 360dpi, black-1" - SKIP-IF-MISSING pwg-raster-samples-360dpi/black-1/document-letter-black-1-360dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_360DPI - SKIP-IF-NOT-DEFINED HAVE_BLACK_1 - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR name job-name "document-letter" - FILE pwg-raster-samples-360dpi/black-1/document-letter-black-1-360dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print document-letter @ 360dpi, black-1, deflate" - SKIP-IF-MISSING pwg-raster-samples-360dpi/black-1/document-letter-black-1-360dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_360DPI - SKIP-IF-NOT-DEFINED HAVE_BLACK_1 - SKIP-IF-NOT-DEFINED HAVE_DEFLATE - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR keyword compression deflate - ATTR name job-name "document-letter" - COMPRESSION deflate - FILE pwg-raster-samples-360dpi/black-1/document-letter-black-1-360dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print document-letter @ 360dpi, black-1, gzip" - SKIP-IF-MISSING pwg-raster-samples-360dpi/black-1/document-letter-black-1-360dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_360DPI - SKIP-IF-NOT-DEFINED HAVE_BLACK_1 - SKIP-IF-NOT-DEFINED HAVE_GZIP - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR keyword compression gzip - ATTR name job-name "document-letter" - COMPRESSION gzip - FILE pwg-raster-samples-360dpi/black-1/document-letter-black-1-360dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print document-letter @ 360dpi, cmyk-8" - SKIP-IF-MISSING pwg-raster-samples-360dpi/cmyk-8/document-letter-cmyk-8-360dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_360DPI - SKIP-IF-NOT-DEFINED HAVE_CMYK_8 - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR name job-name "document-letter" - FILE pwg-raster-samples-360dpi/cmyk-8/document-letter-cmyk-8-360dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print document-letter @ 360dpi, cmyk-8, deflate" - SKIP-IF-MISSING pwg-raster-samples-360dpi/cmyk-8/document-letter-cmyk-8-360dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_360DPI - SKIP-IF-NOT-DEFINED HAVE_CMYK_8 - SKIP-IF-NOT-DEFINED HAVE_DEFLATE - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR keyword compression deflate - ATTR name job-name "document-letter" - COMPRESSION deflate - FILE pwg-raster-samples-360dpi/cmyk-8/document-letter-cmyk-8-360dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print document-letter @ 360dpi, cmyk-8, gzip" - SKIP-IF-MISSING pwg-raster-samples-360dpi/cmyk-8/document-letter-cmyk-8-360dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_360DPI - SKIP-IF-NOT-DEFINED HAVE_CMYK_8 - SKIP-IF-NOT-DEFINED HAVE_GZIP - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR keyword compression gzip - ATTR name job-name "document-letter" - COMPRESSION gzip - FILE pwg-raster-samples-360dpi/cmyk-8/document-letter-cmyk-8-360dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print document-letter @ 360dpi, sgray-8" - SKIP-IF-MISSING pwg-raster-samples-360dpi/sgray-8/document-letter-sgray-8-360dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_360DPI - SKIP-IF-NOT-DEFINED HAVE_SGRAY_8 - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR name job-name "document-letter" - FILE pwg-raster-samples-360dpi/sgray-8/document-letter-sgray-8-360dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print document-letter @ 360dpi, sgray-8, deflate" - SKIP-IF-MISSING pwg-raster-samples-360dpi/sgray-8/document-letter-sgray-8-360dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_360DPI - SKIP-IF-NOT-DEFINED HAVE_SGRAY_8 - SKIP-IF-NOT-DEFINED HAVE_DEFLATE - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR keyword compression deflate - ATTR name job-name "document-letter" - COMPRESSION deflate - FILE pwg-raster-samples-360dpi/sgray-8/document-letter-sgray-8-360dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print document-letter @ 360dpi, sgray-8, gzip" - SKIP-IF-MISSING pwg-raster-samples-360dpi/sgray-8/document-letter-sgray-8-360dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_360DPI - SKIP-IF-NOT-DEFINED HAVE_SGRAY_8 - SKIP-IF-NOT-DEFINED HAVE_GZIP - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR keyword compression gzip - ATTR name job-name "document-letter" - COMPRESSION gzip - FILE pwg-raster-samples-360dpi/sgray-8/document-letter-sgray-8-360dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print document-letter @ 360dpi, srgb-8" - SKIP-IF-MISSING pwg-raster-samples-360dpi/srgb-8/document-letter-srgb-8-360dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_360DPI - SKIP-IF-NOT-DEFINED HAVE_SRGB_8 - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR name job-name "document-letter" - FILE pwg-raster-samples-360dpi/srgb-8/document-letter-srgb-8-360dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print document-letter @ 360dpi, srgb-8, deflate" - SKIP-IF-MISSING pwg-raster-samples-360dpi/srgb-8/document-letter-srgb-8-360dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_360DPI - SKIP-IF-NOT-DEFINED HAVE_SRGB_8 - SKIP-IF-NOT-DEFINED HAVE_DEFLATE - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR keyword compression deflate - ATTR name job-name "document-letter" - COMPRESSION deflate - FILE pwg-raster-samples-360dpi/srgb-8/document-letter-srgb-8-360dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print document-letter @ 360dpi, srgb-8, gzip" - SKIP-IF-MISSING pwg-raster-samples-360dpi/srgb-8/document-letter-srgb-8-360dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_360DPI - SKIP-IF-NOT-DEFINED HAVE_SRGB_8 - SKIP-IF-NOT-DEFINED HAVE_GZIP - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR keyword compression gzip - ATTR name job-name "document-letter" - COMPRESSION gzip - FILE pwg-raster-samples-360dpi/srgb-8/document-letter-srgb-8-360dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print document-letter @ 600dpi, black-1" - SKIP-IF-MISSING pwg-raster-samples-600dpi/black-1/document-letter-black-1-600dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_600DPI - SKIP-IF-NOT-DEFINED HAVE_BLACK_1 - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR name job-name "document-letter" - FILE pwg-raster-samples-600dpi/black-1/document-letter-black-1-600dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print document-letter @ 600dpi, black-1, deflate" - SKIP-IF-MISSING pwg-raster-samples-600dpi/black-1/document-letter-black-1-600dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_600DPI - SKIP-IF-NOT-DEFINED HAVE_BLACK_1 - SKIP-IF-NOT-DEFINED HAVE_DEFLATE - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR keyword compression deflate - ATTR name job-name "document-letter" - COMPRESSION deflate - FILE pwg-raster-samples-600dpi/black-1/document-letter-black-1-600dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print document-letter @ 600dpi, black-1, gzip" - SKIP-IF-MISSING pwg-raster-samples-600dpi/black-1/document-letter-black-1-600dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_600DPI - SKIP-IF-NOT-DEFINED HAVE_BLACK_1 - SKIP-IF-NOT-DEFINED HAVE_GZIP - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR keyword compression gzip - ATTR name job-name "document-letter" - COMPRESSION gzip - FILE pwg-raster-samples-600dpi/black-1/document-letter-black-1-600dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print document-letter @ 600dpi, cmyk-8" - SKIP-IF-MISSING pwg-raster-samples-600dpi/cmyk-8/document-letter-cmyk-8-600dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_600DPI - SKIP-IF-NOT-DEFINED HAVE_CMYK_8 - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR name job-name "document-letter" - FILE pwg-raster-samples-600dpi/cmyk-8/document-letter-cmyk-8-600dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print document-letter @ 600dpi, cmyk-8, deflate" - SKIP-IF-MISSING pwg-raster-samples-600dpi/cmyk-8/document-letter-cmyk-8-600dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_600DPI - SKIP-IF-NOT-DEFINED HAVE_CMYK_8 - SKIP-IF-NOT-DEFINED HAVE_DEFLATE - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR keyword compression deflate - ATTR name job-name "document-letter" - COMPRESSION deflate - FILE pwg-raster-samples-600dpi/cmyk-8/document-letter-cmyk-8-600dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print document-letter @ 600dpi, cmyk-8, gzip" - SKIP-IF-MISSING pwg-raster-samples-600dpi/cmyk-8/document-letter-cmyk-8-600dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_600DPI - SKIP-IF-NOT-DEFINED HAVE_CMYK_8 - SKIP-IF-NOT-DEFINED HAVE_GZIP - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR keyword compression gzip - ATTR name job-name "document-letter" - COMPRESSION gzip - FILE pwg-raster-samples-600dpi/cmyk-8/document-letter-cmyk-8-600dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print document-letter @ 600dpi, sgray-8" - SKIP-IF-MISSING pwg-raster-samples-600dpi/sgray-8/document-letter-sgray-8-600dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_600DPI - SKIP-IF-NOT-DEFINED HAVE_SGRAY_8 - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR name job-name "document-letter" - FILE pwg-raster-samples-600dpi/sgray-8/document-letter-sgray-8-600dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print document-letter @ 600dpi, sgray-8, deflate" - SKIP-IF-MISSING pwg-raster-samples-600dpi/sgray-8/document-letter-sgray-8-600dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_600DPI - SKIP-IF-NOT-DEFINED HAVE_SGRAY_8 - SKIP-IF-NOT-DEFINED HAVE_DEFLATE - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR keyword compression deflate - ATTR name job-name "document-letter" - COMPRESSION deflate - FILE pwg-raster-samples-600dpi/sgray-8/document-letter-sgray-8-600dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print document-letter @ 600dpi, sgray-8, gzip" - SKIP-IF-MISSING pwg-raster-samples-600dpi/sgray-8/document-letter-sgray-8-600dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_600DPI - SKIP-IF-NOT-DEFINED HAVE_SGRAY_8 - SKIP-IF-NOT-DEFINED HAVE_GZIP - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR keyword compression gzip - ATTR name job-name "document-letter" - COMPRESSION gzip - FILE pwg-raster-samples-600dpi/sgray-8/document-letter-sgray-8-600dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print document-letter @ 600dpi, srgb-8" - SKIP-IF-MISSING pwg-raster-samples-600dpi/srgb-8/document-letter-srgb-8-600dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_600DPI - SKIP-IF-NOT-DEFINED HAVE_SRGB_8 - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR name job-name "document-letter" - FILE pwg-raster-samples-600dpi/srgb-8/document-letter-srgb-8-600dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print document-letter @ 600dpi, srgb-8, deflate" - SKIP-IF-MISSING pwg-raster-samples-600dpi/srgb-8/document-letter-srgb-8-600dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_600DPI - SKIP-IF-NOT-DEFINED HAVE_SRGB_8 - SKIP-IF-NOT-DEFINED HAVE_DEFLATE - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR keyword compression deflate - ATTR name job-name "document-letter" - COMPRESSION deflate - FILE pwg-raster-samples-600dpi/srgb-8/document-letter-srgb-8-600dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print document-letter @ 600dpi, srgb-8, gzip" - SKIP-IF-MISSING pwg-raster-samples-600dpi/srgb-8/document-letter-srgb-8-600dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_600DPI - SKIP-IF-NOT-DEFINED HAVE_SRGB_8 - SKIP-IF-NOT-DEFINED HAVE_GZIP - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR keyword compression gzip - ATTR name job-name "document-letter" - COMPRESSION gzip - FILE pwg-raster-samples-600dpi/srgb-8/document-letter-srgb-8-600dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print document-letter @ 720dpi, black-1" - SKIP-IF-MISSING pwg-raster-samples-720dpi/black-1/document-letter-black-1-720dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_720DPI - SKIP-IF-NOT-DEFINED HAVE_BLACK_1 - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR name job-name "document-letter" - FILE pwg-raster-samples-720dpi/black-1/document-letter-black-1-720dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print document-letter @ 720dpi, black-1, deflate" - SKIP-IF-MISSING pwg-raster-samples-720dpi/black-1/document-letter-black-1-720dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_720DPI - SKIP-IF-NOT-DEFINED HAVE_BLACK_1 - SKIP-IF-NOT-DEFINED HAVE_DEFLATE - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR keyword compression deflate - ATTR name job-name "document-letter" - COMPRESSION deflate - FILE pwg-raster-samples-720dpi/black-1/document-letter-black-1-720dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print document-letter @ 720dpi, black-1, gzip" - SKIP-IF-MISSING pwg-raster-samples-720dpi/black-1/document-letter-black-1-720dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_720DPI - SKIP-IF-NOT-DEFINED HAVE_BLACK_1 - SKIP-IF-NOT-DEFINED HAVE_GZIP - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR keyword compression gzip - ATTR name job-name "document-letter" - COMPRESSION gzip - FILE pwg-raster-samples-720dpi/black-1/document-letter-black-1-720dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print document-letter @ 720dpi, cmyk-8" - SKIP-IF-MISSING pwg-raster-samples-720dpi/cmyk-8/document-letter-cmyk-8-720dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_720DPI - SKIP-IF-NOT-DEFINED HAVE_CMYK_8 - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR name job-name "document-letter" - FILE pwg-raster-samples-720dpi/cmyk-8/document-letter-cmyk-8-720dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print document-letter @ 720dpi, cmyk-8, deflate" - SKIP-IF-MISSING pwg-raster-samples-720dpi/cmyk-8/document-letter-cmyk-8-720dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_720DPI - SKIP-IF-NOT-DEFINED HAVE_CMYK_8 - SKIP-IF-NOT-DEFINED HAVE_DEFLATE - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR keyword compression deflate - ATTR name job-name "document-letter" - COMPRESSION deflate - FILE pwg-raster-samples-720dpi/cmyk-8/document-letter-cmyk-8-720dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print document-letter @ 720dpi, cmyk-8, gzip" - SKIP-IF-MISSING pwg-raster-samples-720dpi/cmyk-8/document-letter-cmyk-8-720dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_720DPI - SKIP-IF-NOT-DEFINED HAVE_CMYK_8 - SKIP-IF-NOT-DEFINED HAVE_GZIP - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR keyword compression gzip - ATTR name job-name "document-letter" - COMPRESSION gzip - FILE pwg-raster-samples-720dpi/cmyk-8/document-letter-cmyk-8-720dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print document-letter @ 720dpi, sgray-8" - SKIP-IF-MISSING pwg-raster-samples-720dpi/sgray-8/document-letter-sgray-8-720dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_720DPI - SKIP-IF-NOT-DEFINED HAVE_SGRAY_8 - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR name job-name "document-letter" - FILE pwg-raster-samples-720dpi/sgray-8/document-letter-sgray-8-720dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print document-letter @ 720dpi, sgray-8, deflate" - SKIP-IF-MISSING pwg-raster-samples-720dpi/sgray-8/document-letter-sgray-8-720dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_720DPI - SKIP-IF-NOT-DEFINED HAVE_SGRAY_8 - SKIP-IF-NOT-DEFINED HAVE_DEFLATE - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR keyword compression deflate - ATTR name job-name "document-letter" - COMPRESSION deflate - FILE pwg-raster-samples-720dpi/sgray-8/document-letter-sgray-8-720dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print document-letter @ 720dpi, sgray-8, gzip" - SKIP-IF-MISSING pwg-raster-samples-720dpi/sgray-8/document-letter-sgray-8-720dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_720DPI - SKIP-IF-NOT-DEFINED HAVE_SGRAY_8 - SKIP-IF-NOT-DEFINED HAVE_GZIP - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR keyword compression gzip - ATTR name job-name "document-letter" - COMPRESSION gzip - FILE pwg-raster-samples-720dpi/sgray-8/document-letter-sgray-8-720dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print document-letter @ 720dpi, srgb-8" - SKIP-IF-MISSING pwg-raster-samples-720dpi/srgb-8/document-letter-srgb-8-720dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_720DPI - SKIP-IF-NOT-DEFINED HAVE_SRGB_8 - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR name job-name "document-letter" - FILE pwg-raster-samples-720dpi/srgb-8/document-letter-srgb-8-720dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print document-letter @ 720dpi, srgb-8, deflate" - SKIP-IF-MISSING pwg-raster-samples-720dpi/srgb-8/document-letter-srgb-8-720dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_720DPI - SKIP-IF-NOT-DEFINED HAVE_SRGB_8 - SKIP-IF-NOT-DEFINED HAVE_DEFLATE - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR keyword compression deflate - ATTR name job-name "document-letter" - COMPRESSION deflate - FILE pwg-raster-samples-720dpi/srgb-8/document-letter-srgb-8-720dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print document-letter @ 720dpi, srgb-8, gzip" - SKIP-IF-MISSING pwg-raster-samples-720dpi/srgb-8/document-letter-srgb-8-720dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_720DPI - SKIP-IF-NOT-DEFINED HAVE_SRGB_8 - SKIP-IF-NOT-DEFINED HAVE_GZIP - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR keyword compression gzip - ATTR name job-name "document-letter" - COMPRESSION gzip - FILE pwg-raster-samples-720dpi/srgb-8/document-letter-srgb-8-720dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print gray.jpg-4x6 @ 150dpi, black-1" - SKIP-IF-MISSING pwg-raster-samples-150dpi/black-1/gray.jpg-4x6-black-1-150dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_150DPI - SKIP-IF-NOT-DEFINED HAVE_BLACK_1 - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR name job-name "gray.jpg-4x6" - FILE pwg-raster-samples-150dpi/black-1/gray.jpg-4x6-black-1-150dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print gray.jpg-4x6 @ 150dpi, black-1, deflate" - SKIP-IF-MISSING pwg-raster-samples-150dpi/black-1/gray.jpg-4x6-black-1-150dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_150DPI - SKIP-IF-NOT-DEFINED HAVE_BLACK_1 - SKIP-IF-NOT-DEFINED HAVE_DEFLATE - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR keyword compression deflate - ATTR name job-name "gray.jpg-4x6" - COMPRESSION deflate - FILE pwg-raster-samples-150dpi/black-1/gray.jpg-4x6-black-1-150dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print gray.jpg-4x6 @ 150dpi, black-1, gzip" - SKIP-IF-MISSING pwg-raster-samples-150dpi/black-1/gray.jpg-4x6-black-1-150dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_150DPI - SKIP-IF-NOT-DEFINED HAVE_BLACK_1 - SKIP-IF-NOT-DEFINED HAVE_GZIP - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR keyword compression gzip - ATTR name job-name "gray.jpg-4x6" - COMPRESSION gzip - FILE pwg-raster-samples-150dpi/black-1/gray.jpg-4x6-black-1-150dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print gray.jpg-4x6 @ 150dpi, cmyk-8" - SKIP-IF-MISSING pwg-raster-samples-150dpi/cmyk-8/gray.jpg-4x6-cmyk-8-150dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_150DPI - SKIP-IF-NOT-DEFINED HAVE_CMYK_8 - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR name job-name "gray.jpg-4x6" - FILE pwg-raster-samples-150dpi/cmyk-8/gray.jpg-4x6-cmyk-8-150dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print gray.jpg-4x6 @ 150dpi, cmyk-8, deflate" - SKIP-IF-MISSING pwg-raster-samples-150dpi/cmyk-8/gray.jpg-4x6-cmyk-8-150dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_150DPI - SKIP-IF-NOT-DEFINED HAVE_CMYK_8 - SKIP-IF-NOT-DEFINED HAVE_DEFLATE - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR keyword compression deflate - ATTR name job-name "gray.jpg-4x6" - COMPRESSION deflate - FILE pwg-raster-samples-150dpi/cmyk-8/gray.jpg-4x6-cmyk-8-150dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print gray.jpg-4x6 @ 150dpi, cmyk-8, gzip" - SKIP-IF-MISSING pwg-raster-samples-150dpi/cmyk-8/gray.jpg-4x6-cmyk-8-150dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_150DPI - SKIP-IF-NOT-DEFINED HAVE_CMYK_8 - SKIP-IF-NOT-DEFINED HAVE_GZIP - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR keyword compression gzip - ATTR name job-name "gray.jpg-4x6" - COMPRESSION gzip - FILE pwg-raster-samples-150dpi/cmyk-8/gray.jpg-4x6-cmyk-8-150dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print gray.jpg-4x6 @ 150dpi, sgray-8" - SKIP-IF-MISSING pwg-raster-samples-150dpi/sgray-8/gray.jpg-4x6-sgray-8-150dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_150DPI - SKIP-IF-NOT-DEFINED HAVE_SGRAY_8 - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR name job-name "gray.jpg-4x6" - FILE pwg-raster-samples-150dpi/sgray-8/gray.jpg-4x6-sgray-8-150dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print gray.jpg-4x6 @ 150dpi, sgray-8, deflate" - SKIP-IF-MISSING pwg-raster-samples-150dpi/sgray-8/gray.jpg-4x6-sgray-8-150dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_150DPI - SKIP-IF-NOT-DEFINED HAVE_SGRAY_8 - SKIP-IF-NOT-DEFINED HAVE_DEFLATE - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR keyword compression deflate - ATTR name job-name "gray.jpg-4x6" - COMPRESSION deflate - FILE pwg-raster-samples-150dpi/sgray-8/gray.jpg-4x6-sgray-8-150dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print gray.jpg-4x6 @ 150dpi, sgray-8, gzip" - SKIP-IF-MISSING pwg-raster-samples-150dpi/sgray-8/gray.jpg-4x6-sgray-8-150dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_150DPI - SKIP-IF-NOT-DEFINED HAVE_SGRAY_8 - SKIP-IF-NOT-DEFINED HAVE_GZIP - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR keyword compression gzip - ATTR name job-name "gray.jpg-4x6" - COMPRESSION gzip - FILE pwg-raster-samples-150dpi/sgray-8/gray.jpg-4x6-sgray-8-150dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print gray.jpg-4x6 @ 180dpi, black-1" - SKIP-IF-MISSING pwg-raster-samples-180dpi/black-1/gray.jpg-4x6-black-1-180dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_180DPI - SKIP-IF-NOT-DEFINED HAVE_BLACK_1 - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR name job-name "gray.jpg-4x6" - FILE pwg-raster-samples-180dpi/black-1/gray.jpg-4x6-black-1-180dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print gray.jpg-4x6 @ 180dpi, black-1, deflate" - SKIP-IF-MISSING pwg-raster-samples-180dpi/black-1/gray.jpg-4x6-black-1-180dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_180DPI - SKIP-IF-NOT-DEFINED HAVE_BLACK_1 - SKIP-IF-NOT-DEFINED HAVE_DEFLATE - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR keyword compression deflate - ATTR name job-name "gray.jpg-4x6" - COMPRESSION deflate - FILE pwg-raster-samples-180dpi/black-1/gray.jpg-4x6-black-1-180dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print gray.jpg-4x6 @ 180dpi, black-1, gzip" - SKIP-IF-MISSING pwg-raster-samples-180dpi/black-1/gray.jpg-4x6-black-1-180dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_180DPI - SKIP-IF-NOT-DEFINED HAVE_BLACK_1 - SKIP-IF-NOT-DEFINED HAVE_GZIP - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR keyword compression gzip - ATTR name job-name "gray.jpg-4x6" - COMPRESSION gzip - FILE pwg-raster-samples-180dpi/black-1/gray.jpg-4x6-black-1-180dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print gray.jpg-4x6 @ 180dpi, cmyk-8" - SKIP-IF-MISSING pwg-raster-samples-180dpi/cmyk-8/gray.jpg-4x6-cmyk-8-180dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_180DPI - SKIP-IF-NOT-DEFINED HAVE_CMYK_8 - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR name job-name "gray.jpg-4x6" - FILE pwg-raster-samples-180dpi/cmyk-8/gray.jpg-4x6-cmyk-8-180dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print gray.jpg-4x6 @ 180dpi, cmyk-8, deflate" - SKIP-IF-MISSING pwg-raster-samples-180dpi/cmyk-8/gray.jpg-4x6-cmyk-8-180dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_180DPI - SKIP-IF-NOT-DEFINED HAVE_CMYK_8 - SKIP-IF-NOT-DEFINED HAVE_DEFLATE - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR keyword compression deflate - ATTR name job-name "gray.jpg-4x6" - COMPRESSION deflate - FILE pwg-raster-samples-180dpi/cmyk-8/gray.jpg-4x6-cmyk-8-180dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print gray.jpg-4x6 @ 180dpi, cmyk-8, gzip" - SKIP-IF-MISSING pwg-raster-samples-180dpi/cmyk-8/gray.jpg-4x6-cmyk-8-180dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_180DPI - SKIP-IF-NOT-DEFINED HAVE_CMYK_8 - SKIP-IF-NOT-DEFINED HAVE_GZIP - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR keyword compression gzip - ATTR name job-name "gray.jpg-4x6" - COMPRESSION gzip - FILE pwg-raster-samples-180dpi/cmyk-8/gray.jpg-4x6-cmyk-8-180dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print gray.jpg-4x6 @ 180dpi, sgray-8" - SKIP-IF-MISSING pwg-raster-samples-180dpi/sgray-8/gray.jpg-4x6-sgray-8-180dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_180DPI - SKIP-IF-NOT-DEFINED HAVE_SGRAY_8 - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR name job-name "gray.jpg-4x6" - FILE pwg-raster-samples-180dpi/sgray-8/gray.jpg-4x6-sgray-8-180dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print gray.jpg-4x6 @ 180dpi, sgray-8, deflate" - SKIP-IF-MISSING pwg-raster-samples-180dpi/sgray-8/gray.jpg-4x6-sgray-8-180dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_180DPI - SKIP-IF-NOT-DEFINED HAVE_SGRAY_8 - SKIP-IF-NOT-DEFINED HAVE_DEFLATE - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR keyword compression deflate - ATTR name job-name "gray.jpg-4x6" - COMPRESSION deflate - FILE pwg-raster-samples-180dpi/sgray-8/gray.jpg-4x6-sgray-8-180dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print gray.jpg-4x6 @ 180dpi, sgray-8, gzip" - SKIP-IF-MISSING pwg-raster-samples-180dpi/sgray-8/gray.jpg-4x6-sgray-8-180dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_180DPI - SKIP-IF-NOT-DEFINED HAVE_SGRAY_8 - SKIP-IF-NOT-DEFINED HAVE_GZIP - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR keyword compression gzip - ATTR name job-name "gray.jpg-4x6" - COMPRESSION gzip - FILE pwg-raster-samples-180dpi/sgray-8/gray.jpg-4x6-sgray-8-180dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print gray.jpg-4x6 @ 300dpi, black-1" - SKIP-IF-MISSING pwg-raster-samples-300dpi/black-1/gray.jpg-4x6-black-1-300dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_300DPI - SKIP-IF-NOT-DEFINED HAVE_BLACK_1 - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR name job-name "gray.jpg-4x6" - FILE pwg-raster-samples-300dpi/black-1/gray.jpg-4x6-black-1-300dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print gray.jpg-4x6 @ 300dpi, black-1, deflate" - SKIP-IF-MISSING pwg-raster-samples-300dpi/black-1/gray.jpg-4x6-black-1-300dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_300DPI - SKIP-IF-NOT-DEFINED HAVE_BLACK_1 - SKIP-IF-NOT-DEFINED HAVE_DEFLATE - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR keyword compression deflate - ATTR name job-name "gray.jpg-4x6" - COMPRESSION deflate - FILE pwg-raster-samples-300dpi/black-1/gray.jpg-4x6-black-1-300dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print gray.jpg-4x6 @ 300dpi, black-1, gzip" - SKIP-IF-MISSING pwg-raster-samples-300dpi/black-1/gray.jpg-4x6-black-1-300dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_300DPI - SKIP-IF-NOT-DEFINED HAVE_BLACK_1 - SKIP-IF-NOT-DEFINED HAVE_GZIP - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR keyword compression gzip - ATTR name job-name "gray.jpg-4x6" - COMPRESSION gzip - FILE pwg-raster-samples-300dpi/black-1/gray.jpg-4x6-black-1-300dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print gray.jpg-4x6 @ 300dpi, cmyk-8" - SKIP-IF-MISSING pwg-raster-samples-300dpi/cmyk-8/gray.jpg-4x6-cmyk-8-300dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_300DPI - SKIP-IF-NOT-DEFINED HAVE_CMYK_8 - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR name job-name "gray.jpg-4x6" - FILE pwg-raster-samples-300dpi/cmyk-8/gray.jpg-4x6-cmyk-8-300dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print gray.jpg-4x6 @ 300dpi, cmyk-8, deflate" - SKIP-IF-MISSING pwg-raster-samples-300dpi/cmyk-8/gray.jpg-4x6-cmyk-8-300dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_300DPI - SKIP-IF-NOT-DEFINED HAVE_CMYK_8 - SKIP-IF-NOT-DEFINED HAVE_DEFLATE - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR keyword compression deflate - ATTR name job-name "gray.jpg-4x6" - COMPRESSION deflate - FILE pwg-raster-samples-300dpi/cmyk-8/gray.jpg-4x6-cmyk-8-300dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print gray.jpg-4x6 @ 300dpi, cmyk-8, gzip" - SKIP-IF-MISSING pwg-raster-samples-300dpi/cmyk-8/gray.jpg-4x6-cmyk-8-300dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_300DPI - SKIP-IF-NOT-DEFINED HAVE_CMYK_8 - SKIP-IF-NOT-DEFINED HAVE_GZIP - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR keyword compression gzip - ATTR name job-name "gray.jpg-4x6" - COMPRESSION gzip - FILE pwg-raster-samples-300dpi/cmyk-8/gray.jpg-4x6-cmyk-8-300dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print gray.jpg-4x6 @ 300dpi, sgray-8" - SKIP-IF-MISSING pwg-raster-samples-300dpi/sgray-8/gray.jpg-4x6-sgray-8-300dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_300DPI - SKIP-IF-NOT-DEFINED HAVE_SGRAY_8 - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR name job-name "gray.jpg-4x6" - FILE pwg-raster-samples-300dpi/sgray-8/gray.jpg-4x6-sgray-8-300dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print gray.jpg-4x6 @ 300dpi, sgray-8, deflate" - SKIP-IF-MISSING pwg-raster-samples-300dpi/sgray-8/gray.jpg-4x6-sgray-8-300dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_300DPI - SKIP-IF-NOT-DEFINED HAVE_SGRAY_8 - SKIP-IF-NOT-DEFINED HAVE_DEFLATE - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR keyword compression deflate - ATTR name job-name "gray.jpg-4x6" - COMPRESSION deflate - FILE pwg-raster-samples-300dpi/sgray-8/gray.jpg-4x6-sgray-8-300dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print gray.jpg-4x6 @ 300dpi, sgray-8, gzip" - SKIP-IF-MISSING pwg-raster-samples-300dpi/sgray-8/gray.jpg-4x6-sgray-8-300dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_300DPI - SKIP-IF-NOT-DEFINED HAVE_SGRAY_8 - SKIP-IF-NOT-DEFINED HAVE_GZIP - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR keyword compression gzip - ATTR name job-name "gray.jpg-4x6" - COMPRESSION gzip - FILE pwg-raster-samples-300dpi/sgray-8/gray.jpg-4x6-sgray-8-300dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print gray.jpg-4x6 @ 360dpi, black-1" - SKIP-IF-MISSING pwg-raster-samples-360dpi/black-1/gray.jpg-4x6-black-1-360dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_360DPI - SKIP-IF-NOT-DEFINED HAVE_BLACK_1 - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR name job-name "gray.jpg-4x6" - FILE pwg-raster-samples-360dpi/black-1/gray.jpg-4x6-black-1-360dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print gray.jpg-4x6 @ 360dpi, black-1, deflate" - SKIP-IF-MISSING pwg-raster-samples-360dpi/black-1/gray.jpg-4x6-black-1-360dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_360DPI - SKIP-IF-NOT-DEFINED HAVE_BLACK_1 - SKIP-IF-NOT-DEFINED HAVE_DEFLATE - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR keyword compression deflate - ATTR name job-name "gray.jpg-4x6" - COMPRESSION deflate - FILE pwg-raster-samples-360dpi/black-1/gray.jpg-4x6-black-1-360dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print gray.jpg-4x6 @ 360dpi, black-1, gzip" - SKIP-IF-MISSING pwg-raster-samples-360dpi/black-1/gray.jpg-4x6-black-1-360dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_360DPI - SKIP-IF-NOT-DEFINED HAVE_BLACK_1 - SKIP-IF-NOT-DEFINED HAVE_GZIP - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR keyword compression gzip - ATTR name job-name "gray.jpg-4x6" - COMPRESSION gzip - FILE pwg-raster-samples-360dpi/black-1/gray.jpg-4x6-black-1-360dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print gray.jpg-4x6 @ 360dpi, cmyk-8" - SKIP-IF-MISSING pwg-raster-samples-360dpi/cmyk-8/gray.jpg-4x6-cmyk-8-360dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_360DPI - SKIP-IF-NOT-DEFINED HAVE_CMYK_8 - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR name job-name "gray.jpg-4x6" - FILE pwg-raster-samples-360dpi/cmyk-8/gray.jpg-4x6-cmyk-8-360dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print gray.jpg-4x6 @ 360dpi, cmyk-8, deflate" - SKIP-IF-MISSING pwg-raster-samples-360dpi/cmyk-8/gray.jpg-4x6-cmyk-8-360dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_360DPI - SKIP-IF-NOT-DEFINED HAVE_CMYK_8 - SKIP-IF-NOT-DEFINED HAVE_DEFLATE - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR keyword compression deflate - ATTR name job-name "gray.jpg-4x6" - COMPRESSION deflate - FILE pwg-raster-samples-360dpi/cmyk-8/gray.jpg-4x6-cmyk-8-360dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print gray.jpg-4x6 @ 360dpi, cmyk-8, gzip" - SKIP-IF-MISSING pwg-raster-samples-360dpi/cmyk-8/gray.jpg-4x6-cmyk-8-360dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_360DPI - SKIP-IF-NOT-DEFINED HAVE_CMYK_8 - SKIP-IF-NOT-DEFINED HAVE_GZIP - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR keyword compression gzip - ATTR name job-name "gray.jpg-4x6" - COMPRESSION gzip - FILE pwg-raster-samples-360dpi/cmyk-8/gray.jpg-4x6-cmyk-8-360dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print gray.jpg-4x6 @ 360dpi, sgray-8" - SKIP-IF-MISSING pwg-raster-samples-360dpi/sgray-8/gray.jpg-4x6-sgray-8-360dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_360DPI - SKIP-IF-NOT-DEFINED HAVE_SGRAY_8 - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR name job-name "gray.jpg-4x6" - FILE pwg-raster-samples-360dpi/sgray-8/gray.jpg-4x6-sgray-8-360dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print gray.jpg-4x6 @ 360dpi, sgray-8, deflate" - SKIP-IF-MISSING pwg-raster-samples-360dpi/sgray-8/gray.jpg-4x6-sgray-8-360dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_360DPI - SKIP-IF-NOT-DEFINED HAVE_SGRAY_8 - SKIP-IF-NOT-DEFINED HAVE_DEFLATE - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR keyword compression deflate - ATTR name job-name "gray.jpg-4x6" - COMPRESSION deflate - FILE pwg-raster-samples-360dpi/sgray-8/gray.jpg-4x6-sgray-8-360dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print gray.jpg-4x6 @ 360dpi, sgray-8, gzip" - SKIP-IF-MISSING pwg-raster-samples-360dpi/sgray-8/gray.jpg-4x6-sgray-8-360dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_360DPI - SKIP-IF-NOT-DEFINED HAVE_SGRAY_8 - SKIP-IF-NOT-DEFINED HAVE_GZIP - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR keyword compression gzip - ATTR name job-name "gray.jpg-4x6" - COMPRESSION gzip - FILE pwg-raster-samples-360dpi/sgray-8/gray.jpg-4x6-sgray-8-360dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print gray.jpg-4x6 @ 600dpi, black-1" - SKIP-IF-MISSING pwg-raster-samples-600dpi/black-1/gray.jpg-4x6-black-1-600dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_600DPI - SKIP-IF-NOT-DEFINED HAVE_BLACK_1 - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR name job-name "gray.jpg-4x6" - FILE pwg-raster-samples-600dpi/black-1/gray.jpg-4x6-black-1-600dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print gray.jpg-4x6 @ 600dpi, black-1, deflate" - SKIP-IF-MISSING pwg-raster-samples-600dpi/black-1/gray.jpg-4x6-black-1-600dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_600DPI - SKIP-IF-NOT-DEFINED HAVE_BLACK_1 - SKIP-IF-NOT-DEFINED HAVE_DEFLATE - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR keyword compression deflate - ATTR name job-name "gray.jpg-4x6" - COMPRESSION deflate - FILE pwg-raster-samples-600dpi/black-1/gray.jpg-4x6-black-1-600dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print gray.jpg-4x6 @ 600dpi, black-1, gzip" - SKIP-IF-MISSING pwg-raster-samples-600dpi/black-1/gray.jpg-4x6-black-1-600dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_600DPI - SKIP-IF-NOT-DEFINED HAVE_BLACK_1 - SKIP-IF-NOT-DEFINED HAVE_GZIP - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR keyword compression gzip - ATTR name job-name "gray.jpg-4x6" - COMPRESSION gzip - FILE pwg-raster-samples-600dpi/black-1/gray.jpg-4x6-black-1-600dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print gray.jpg-4x6 @ 600dpi, cmyk-8" - SKIP-IF-MISSING pwg-raster-samples-600dpi/cmyk-8/gray.jpg-4x6-cmyk-8-600dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_600DPI - SKIP-IF-NOT-DEFINED HAVE_CMYK_8 - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR name job-name "gray.jpg-4x6" - FILE pwg-raster-samples-600dpi/cmyk-8/gray.jpg-4x6-cmyk-8-600dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print gray.jpg-4x6 @ 600dpi, cmyk-8, deflate" - SKIP-IF-MISSING pwg-raster-samples-600dpi/cmyk-8/gray.jpg-4x6-cmyk-8-600dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_600DPI - SKIP-IF-NOT-DEFINED HAVE_CMYK_8 - SKIP-IF-NOT-DEFINED HAVE_DEFLATE - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR keyword compression deflate - ATTR name job-name "gray.jpg-4x6" - COMPRESSION deflate - FILE pwg-raster-samples-600dpi/cmyk-8/gray.jpg-4x6-cmyk-8-600dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print gray.jpg-4x6 @ 600dpi, cmyk-8, gzip" - SKIP-IF-MISSING pwg-raster-samples-600dpi/cmyk-8/gray.jpg-4x6-cmyk-8-600dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_600DPI - SKIP-IF-NOT-DEFINED HAVE_CMYK_8 - SKIP-IF-NOT-DEFINED HAVE_GZIP - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR keyword compression gzip - ATTR name job-name "gray.jpg-4x6" - COMPRESSION gzip - FILE pwg-raster-samples-600dpi/cmyk-8/gray.jpg-4x6-cmyk-8-600dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print gray.jpg-4x6 @ 600dpi, sgray-8" - SKIP-IF-MISSING pwg-raster-samples-600dpi/sgray-8/gray.jpg-4x6-sgray-8-600dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_600DPI - SKIP-IF-NOT-DEFINED HAVE_SGRAY_8 - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR name job-name "gray.jpg-4x6" - FILE pwg-raster-samples-600dpi/sgray-8/gray.jpg-4x6-sgray-8-600dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print gray.jpg-4x6 @ 600dpi, sgray-8, deflate" - SKIP-IF-MISSING pwg-raster-samples-600dpi/sgray-8/gray.jpg-4x6-sgray-8-600dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_600DPI - SKIP-IF-NOT-DEFINED HAVE_SGRAY_8 - SKIP-IF-NOT-DEFINED HAVE_DEFLATE - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR keyword compression deflate - ATTR name job-name "gray.jpg-4x6" - COMPRESSION deflate - FILE pwg-raster-samples-600dpi/sgray-8/gray.jpg-4x6-sgray-8-600dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print gray.jpg-4x6 @ 600dpi, sgray-8, gzip" - SKIP-IF-MISSING pwg-raster-samples-600dpi/sgray-8/gray.jpg-4x6-sgray-8-600dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_600DPI - SKIP-IF-NOT-DEFINED HAVE_SGRAY_8 - SKIP-IF-NOT-DEFINED HAVE_GZIP - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR keyword compression gzip - ATTR name job-name "gray.jpg-4x6" - COMPRESSION gzip - FILE pwg-raster-samples-600dpi/sgray-8/gray.jpg-4x6-sgray-8-600dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print gray.jpg-4x6 @ 720dpi, black-1" - SKIP-IF-MISSING pwg-raster-samples-720dpi/black-1/gray.jpg-4x6-black-1-720dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_720DPI - SKIP-IF-NOT-DEFINED HAVE_BLACK_1 - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR name job-name "gray.jpg-4x6" - FILE pwg-raster-samples-720dpi/black-1/gray.jpg-4x6-black-1-720dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print gray.jpg-4x6 @ 720dpi, black-1, deflate" - SKIP-IF-MISSING pwg-raster-samples-720dpi/black-1/gray.jpg-4x6-black-1-720dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_720DPI - SKIP-IF-NOT-DEFINED HAVE_BLACK_1 - SKIP-IF-NOT-DEFINED HAVE_DEFLATE - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR keyword compression deflate - ATTR name job-name "gray.jpg-4x6" - COMPRESSION deflate - FILE pwg-raster-samples-720dpi/black-1/gray.jpg-4x6-black-1-720dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print gray.jpg-4x6 @ 720dpi, black-1, gzip" - SKIP-IF-MISSING pwg-raster-samples-720dpi/black-1/gray.jpg-4x6-black-1-720dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_720DPI - SKIP-IF-NOT-DEFINED HAVE_BLACK_1 - SKIP-IF-NOT-DEFINED HAVE_GZIP - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR keyword compression gzip - ATTR name job-name "gray.jpg-4x6" - COMPRESSION gzip - FILE pwg-raster-samples-720dpi/black-1/gray.jpg-4x6-black-1-720dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print gray.jpg-4x6 @ 720dpi, cmyk-8" - SKIP-IF-MISSING pwg-raster-samples-720dpi/cmyk-8/gray.jpg-4x6-cmyk-8-720dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_720DPI - SKIP-IF-NOT-DEFINED HAVE_CMYK_8 - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR name job-name "gray.jpg-4x6" - FILE pwg-raster-samples-720dpi/cmyk-8/gray.jpg-4x6-cmyk-8-720dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print gray.jpg-4x6 @ 720dpi, cmyk-8, deflate" - SKIP-IF-MISSING pwg-raster-samples-720dpi/cmyk-8/gray.jpg-4x6-cmyk-8-720dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_720DPI - SKIP-IF-NOT-DEFINED HAVE_CMYK_8 - SKIP-IF-NOT-DEFINED HAVE_DEFLATE - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR keyword compression deflate - ATTR name job-name "gray.jpg-4x6" - COMPRESSION deflate - FILE pwg-raster-samples-720dpi/cmyk-8/gray.jpg-4x6-cmyk-8-720dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print gray.jpg-4x6 @ 720dpi, cmyk-8, gzip" - SKIP-IF-MISSING pwg-raster-samples-720dpi/cmyk-8/gray.jpg-4x6-cmyk-8-720dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_720DPI - SKIP-IF-NOT-DEFINED HAVE_CMYK_8 - SKIP-IF-NOT-DEFINED HAVE_GZIP - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR keyword compression gzip - ATTR name job-name "gray.jpg-4x6" - COMPRESSION gzip - FILE pwg-raster-samples-720dpi/cmyk-8/gray.jpg-4x6-cmyk-8-720dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print gray.jpg-4x6 @ 720dpi, sgray-8" - SKIP-IF-MISSING pwg-raster-samples-720dpi/sgray-8/gray.jpg-4x6-sgray-8-720dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_720DPI - SKIP-IF-NOT-DEFINED HAVE_SGRAY_8 - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR name job-name "gray.jpg-4x6" - FILE pwg-raster-samples-720dpi/sgray-8/gray.jpg-4x6-sgray-8-720dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print gray.jpg-4x6 @ 720dpi, sgray-8, deflate" - SKIP-IF-MISSING pwg-raster-samples-720dpi/sgray-8/gray.jpg-4x6-sgray-8-720dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_720DPI - SKIP-IF-NOT-DEFINED HAVE_SGRAY_8 - SKIP-IF-NOT-DEFINED HAVE_DEFLATE - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR keyword compression deflate - ATTR name job-name "gray.jpg-4x6" - COMPRESSION deflate - FILE pwg-raster-samples-720dpi/sgray-8/gray.jpg-4x6-sgray-8-720dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print gray.jpg-4x6 @ 720dpi, sgray-8, gzip" - SKIP-IF-MISSING pwg-raster-samples-720dpi/sgray-8/gray.jpg-4x6-sgray-8-720dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_720DPI - SKIP-IF-NOT-DEFINED HAVE_SGRAY_8 - SKIP-IF-NOT-DEFINED HAVE_GZIP - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR keyword compression gzip - ATTR name job-name "gray.jpg-4x6" - COMPRESSION gzip - FILE pwg-raster-samples-720dpi/sgray-8/gray.jpg-4x6-sgray-8-720dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print onepage-a4 @ 150dpi, black-1" - SKIP-IF-MISSING pwg-raster-samples-150dpi/black-1/onepage-a4-black-1-150dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_150DPI - SKIP-IF-NOT-DEFINED HAVE_BLACK_1 - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR name job-name "onepage-a4" - FILE pwg-raster-samples-150dpi/black-1/onepage-a4-black-1-150dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print onepage-a4 @ 150dpi, black-1, deflate" - SKIP-IF-MISSING pwg-raster-samples-150dpi/black-1/onepage-a4-black-1-150dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_150DPI - SKIP-IF-NOT-DEFINED HAVE_BLACK_1 - SKIP-IF-NOT-DEFINED HAVE_DEFLATE - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR keyword compression deflate - ATTR name job-name "onepage-a4" - COMPRESSION deflate - FILE pwg-raster-samples-150dpi/black-1/onepage-a4-black-1-150dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print onepage-a4 @ 150dpi, black-1, gzip" - SKIP-IF-MISSING pwg-raster-samples-150dpi/black-1/onepage-a4-black-1-150dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_150DPI - SKIP-IF-NOT-DEFINED HAVE_BLACK_1 - SKIP-IF-NOT-DEFINED HAVE_GZIP - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR keyword compression gzip - ATTR name job-name "onepage-a4" - COMPRESSION gzip - FILE pwg-raster-samples-150dpi/black-1/onepage-a4-black-1-150dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print onepage-a4 @ 150dpi, cmyk-8" - SKIP-IF-MISSING pwg-raster-samples-150dpi/cmyk-8/onepage-a4-cmyk-8-150dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_150DPI - SKIP-IF-NOT-DEFINED HAVE_CMYK_8 - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR name job-name "onepage-a4" - FILE pwg-raster-samples-150dpi/cmyk-8/onepage-a4-cmyk-8-150dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print onepage-a4 @ 150dpi, cmyk-8, deflate" - SKIP-IF-MISSING pwg-raster-samples-150dpi/cmyk-8/onepage-a4-cmyk-8-150dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_150DPI - SKIP-IF-NOT-DEFINED HAVE_CMYK_8 - SKIP-IF-NOT-DEFINED HAVE_DEFLATE - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR keyword compression deflate - ATTR name job-name "onepage-a4" - COMPRESSION deflate - FILE pwg-raster-samples-150dpi/cmyk-8/onepage-a4-cmyk-8-150dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print onepage-a4 @ 150dpi, cmyk-8, gzip" - SKIP-IF-MISSING pwg-raster-samples-150dpi/cmyk-8/onepage-a4-cmyk-8-150dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_150DPI - SKIP-IF-NOT-DEFINED HAVE_CMYK_8 - SKIP-IF-NOT-DEFINED HAVE_GZIP - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR keyword compression gzip - ATTR name job-name "onepage-a4" - COMPRESSION gzip - FILE pwg-raster-samples-150dpi/cmyk-8/onepage-a4-cmyk-8-150dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print onepage-a4 @ 150dpi, sgray-8" - SKIP-IF-MISSING pwg-raster-samples-150dpi/sgray-8/onepage-a4-sgray-8-150dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_150DPI - SKIP-IF-NOT-DEFINED HAVE_SGRAY_8 - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR name job-name "onepage-a4" - FILE pwg-raster-samples-150dpi/sgray-8/onepage-a4-sgray-8-150dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print onepage-a4 @ 150dpi, sgray-8, deflate" - SKIP-IF-MISSING pwg-raster-samples-150dpi/sgray-8/onepage-a4-sgray-8-150dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_150DPI - SKIP-IF-NOT-DEFINED HAVE_SGRAY_8 - SKIP-IF-NOT-DEFINED HAVE_DEFLATE - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR keyword compression deflate - ATTR name job-name "onepage-a4" - COMPRESSION deflate - FILE pwg-raster-samples-150dpi/sgray-8/onepage-a4-sgray-8-150dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print onepage-a4 @ 150dpi, sgray-8, gzip" - SKIP-IF-MISSING pwg-raster-samples-150dpi/sgray-8/onepage-a4-sgray-8-150dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_150DPI - SKIP-IF-NOT-DEFINED HAVE_SGRAY_8 - SKIP-IF-NOT-DEFINED HAVE_GZIP - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR keyword compression gzip - ATTR name job-name "onepage-a4" - COMPRESSION gzip - FILE pwg-raster-samples-150dpi/sgray-8/onepage-a4-sgray-8-150dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print onepage-a4 @ 150dpi, srgb-8" - SKIP-IF-MISSING pwg-raster-samples-150dpi/srgb-8/onepage-a4-srgb-8-150dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_150DPI - SKIP-IF-NOT-DEFINED HAVE_SRGB_8 - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR name job-name "onepage-a4" - FILE pwg-raster-samples-150dpi/srgb-8/onepage-a4-srgb-8-150dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print onepage-a4 @ 150dpi, srgb-8, deflate" - SKIP-IF-MISSING pwg-raster-samples-150dpi/srgb-8/onepage-a4-srgb-8-150dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_150DPI - SKIP-IF-NOT-DEFINED HAVE_SRGB_8 - SKIP-IF-NOT-DEFINED HAVE_DEFLATE - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR keyword compression deflate - ATTR name job-name "onepage-a4" - COMPRESSION deflate - FILE pwg-raster-samples-150dpi/srgb-8/onepage-a4-srgb-8-150dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print onepage-a4 @ 150dpi, srgb-8, gzip" - SKIP-IF-MISSING pwg-raster-samples-150dpi/srgb-8/onepage-a4-srgb-8-150dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_150DPI - SKIP-IF-NOT-DEFINED HAVE_SRGB_8 - SKIP-IF-NOT-DEFINED HAVE_GZIP - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR keyword compression gzip - ATTR name job-name "onepage-a4" - COMPRESSION gzip - FILE pwg-raster-samples-150dpi/srgb-8/onepage-a4-srgb-8-150dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print onepage-a4 @ 180dpi, black-1" - SKIP-IF-MISSING pwg-raster-samples-180dpi/black-1/onepage-a4-black-1-180dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_180DPI - SKIP-IF-NOT-DEFINED HAVE_BLACK_1 - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR name job-name "onepage-a4" - FILE pwg-raster-samples-180dpi/black-1/onepage-a4-black-1-180dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print onepage-a4 @ 180dpi, black-1, deflate" - SKIP-IF-MISSING pwg-raster-samples-180dpi/black-1/onepage-a4-black-1-180dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_180DPI - SKIP-IF-NOT-DEFINED HAVE_BLACK_1 - SKIP-IF-NOT-DEFINED HAVE_DEFLATE - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR keyword compression deflate - ATTR name job-name "onepage-a4" - COMPRESSION deflate - FILE pwg-raster-samples-180dpi/black-1/onepage-a4-black-1-180dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print onepage-a4 @ 180dpi, black-1, gzip" - SKIP-IF-MISSING pwg-raster-samples-180dpi/black-1/onepage-a4-black-1-180dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_180DPI - SKIP-IF-NOT-DEFINED HAVE_BLACK_1 - SKIP-IF-NOT-DEFINED HAVE_GZIP - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR keyword compression gzip - ATTR name job-name "onepage-a4" - COMPRESSION gzip - FILE pwg-raster-samples-180dpi/black-1/onepage-a4-black-1-180dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print onepage-a4 @ 180dpi, cmyk-8" - SKIP-IF-MISSING pwg-raster-samples-180dpi/cmyk-8/onepage-a4-cmyk-8-180dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_180DPI - SKIP-IF-NOT-DEFINED HAVE_CMYK_8 - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR name job-name "onepage-a4" - FILE pwg-raster-samples-180dpi/cmyk-8/onepage-a4-cmyk-8-180dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print onepage-a4 @ 180dpi, cmyk-8, deflate" - SKIP-IF-MISSING pwg-raster-samples-180dpi/cmyk-8/onepage-a4-cmyk-8-180dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_180DPI - SKIP-IF-NOT-DEFINED HAVE_CMYK_8 - SKIP-IF-NOT-DEFINED HAVE_DEFLATE - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR keyword compression deflate - ATTR name job-name "onepage-a4" - COMPRESSION deflate - FILE pwg-raster-samples-180dpi/cmyk-8/onepage-a4-cmyk-8-180dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print onepage-a4 @ 180dpi, cmyk-8, gzip" - SKIP-IF-MISSING pwg-raster-samples-180dpi/cmyk-8/onepage-a4-cmyk-8-180dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_180DPI - SKIP-IF-NOT-DEFINED HAVE_CMYK_8 - SKIP-IF-NOT-DEFINED HAVE_GZIP - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR keyword compression gzip - ATTR name job-name "onepage-a4" - COMPRESSION gzip - FILE pwg-raster-samples-180dpi/cmyk-8/onepage-a4-cmyk-8-180dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print onepage-a4 @ 180dpi, sgray-8" - SKIP-IF-MISSING pwg-raster-samples-180dpi/sgray-8/onepage-a4-sgray-8-180dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_180DPI - SKIP-IF-NOT-DEFINED HAVE_SGRAY_8 - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR name job-name "onepage-a4" - FILE pwg-raster-samples-180dpi/sgray-8/onepage-a4-sgray-8-180dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print onepage-a4 @ 180dpi, sgray-8, deflate" - SKIP-IF-MISSING pwg-raster-samples-180dpi/sgray-8/onepage-a4-sgray-8-180dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_180DPI - SKIP-IF-NOT-DEFINED HAVE_SGRAY_8 - SKIP-IF-NOT-DEFINED HAVE_DEFLATE - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR keyword compression deflate - ATTR name job-name "onepage-a4" - COMPRESSION deflate - FILE pwg-raster-samples-180dpi/sgray-8/onepage-a4-sgray-8-180dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print onepage-a4 @ 180dpi, sgray-8, gzip" - SKIP-IF-MISSING pwg-raster-samples-180dpi/sgray-8/onepage-a4-sgray-8-180dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_180DPI - SKIP-IF-NOT-DEFINED HAVE_SGRAY_8 - SKIP-IF-NOT-DEFINED HAVE_GZIP - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR keyword compression gzip - ATTR name job-name "onepage-a4" - COMPRESSION gzip - FILE pwg-raster-samples-180dpi/sgray-8/onepage-a4-sgray-8-180dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print onepage-a4 @ 180dpi, srgb-8" - SKIP-IF-MISSING pwg-raster-samples-180dpi/srgb-8/onepage-a4-srgb-8-180dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_180DPI - SKIP-IF-NOT-DEFINED HAVE_SRGB_8 - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR name job-name "onepage-a4" - FILE pwg-raster-samples-180dpi/srgb-8/onepage-a4-srgb-8-180dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print onepage-a4 @ 180dpi, srgb-8, deflate" - SKIP-IF-MISSING pwg-raster-samples-180dpi/srgb-8/onepage-a4-srgb-8-180dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_180DPI - SKIP-IF-NOT-DEFINED HAVE_SRGB_8 - SKIP-IF-NOT-DEFINED HAVE_DEFLATE - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR keyword compression deflate - ATTR name job-name "onepage-a4" - COMPRESSION deflate - FILE pwg-raster-samples-180dpi/srgb-8/onepage-a4-srgb-8-180dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print onepage-a4 @ 180dpi, srgb-8, gzip" - SKIP-IF-MISSING pwg-raster-samples-180dpi/srgb-8/onepage-a4-srgb-8-180dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_180DPI - SKIP-IF-NOT-DEFINED HAVE_SRGB_8 - SKIP-IF-NOT-DEFINED HAVE_GZIP - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR keyword compression gzip - ATTR name job-name "onepage-a4" - COMPRESSION gzip - FILE pwg-raster-samples-180dpi/srgb-8/onepage-a4-srgb-8-180dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print onepage-a4 @ 300dpi, black-1" - SKIP-IF-MISSING pwg-raster-samples-300dpi/black-1/onepage-a4-black-1-300dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_300DPI - SKIP-IF-NOT-DEFINED HAVE_BLACK_1 - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR name job-name "onepage-a4" - FILE pwg-raster-samples-300dpi/black-1/onepage-a4-black-1-300dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print onepage-a4 @ 300dpi, black-1, deflate" - SKIP-IF-MISSING pwg-raster-samples-300dpi/black-1/onepage-a4-black-1-300dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_300DPI - SKIP-IF-NOT-DEFINED HAVE_BLACK_1 - SKIP-IF-NOT-DEFINED HAVE_DEFLATE - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR keyword compression deflate - ATTR name job-name "onepage-a4" - COMPRESSION deflate - FILE pwg-raster-samples-300dpi/black-1/onepage-a4-black-1-300dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print onepage-a4 @ 300dpi, black-1, gzip" - SKIP-IF-MISSING pwg-raster-samples-300dpi/black-1/onepage-a4-black-1-300dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_300DPI - SKIP-IF-NOT-DEFINED HAVE_BLACK_1 - SKIP-IF-NOT-DEFINED HAVE_GZIP - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR keyword compression gzip - ATTR name job-name "onepage-a4" - COMPRESSION gzip - FILE pwg-raster-samples-300dpi/black-1/onepage-a4-black-1-300dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print onepage-a4 @ 300dpi, cmyk-8" - SKIP-IF-MISSING pwg-raster-samples-300dpi/cmyk-8/onepage-a4-cmyk-8-300dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_300DPI - SKIP-IF-NOT-DEFINED HAVE_CMYK_8 - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR name job-name "onepage-a4" - FILE pwg-raster-samples-300dpi/cmyk-8/onepage-a4-cmyk-8-300dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print onepage-a4 @ 300dpi, cmyk-8, deflate" - SKIP-IF-MISSING pwg-raster-samples-300dpi/cmyk-8/onepage-a4-cmyk-8-300dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_300DPI - SKIP-IF-NOT-DEFINED HAVE_CMYK_8 - SKIP-IF-NOT-DEFINED HAVE_DEFLATE - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR keyword compression deflate - ATTR name job-name "onepage-a4" - COMPRESSION deflate - FILE pwg-raster-samples-300dpi/cmyk-8/onepage-a4-cmyk-8-300dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print onepage-a4 @ 300dpi, cmyk-8, gzip" - SKIP-IF-MISSING pwg-raster-samples-300dpi/cmyk-8/onepage-a4-cmyk-8-300dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_300DPI - SKIP-IF-NOT-DEFINED HAVE_CMYK_8 - SKIP-IF-NOT-DEFINED HAVE_GZIP - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR keyword compression gzip - ATTR name job-name "onepage-a4" - COMPRESSION gzip - FILE pwg-raster-samples-300dpi/cmyk-8/onepage-a4-cmyk-8-300dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print onepage-a4 @ 300dpi, sgray-8" - SKIP-IF-MISSING pwg-raster-samples-300dpi/sgray-8/onepage-a4-sgray-8-300dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_300DPI - SKIP-IF-NOT-DEFINED HAVE_SGRAY_8 - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR name job-name "onepage-a4" - FILE pwg-raster-samples-300dpi/sgray-8/onepage-a4-sgray-8-300dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print onepage-a4 @ 300dpi, sgray-8, deflate" - SKIP-IF-MISSING pwg-raster-samples-300dpi/sgray-8/onepage-a4-sgray-8-300dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_300DPI - SKIP-IF-NOT-DEFINED HAVE_SGRAY_8 - SKIP-IF-NOT-DEFINED HAVE_DEFLATE - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR keyword compression deflate - ATTR name job-name "onepage-a4" - COMPRESSION deflate - FILE pwg-raster-samples-300dpi/sgray-8/onepage-a4-sgray-8-300dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print onepage-a4 @ 300dpi, sgray-8, gzip" - SKIP-IF-MISSING pwg-raster-samples-300dpi/sgray-8/onepage-a4-sgray-8-300dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_300DPI - SKIP-IF-NOT-DEFINED HAVE_SGRAY_8 - SKIP-IF-NOT-DEFINED HAVE_GZIP - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR keyword compression gzip - ATTR name job-name "onepage-a4" - COMPRESSION gzip - FILE pwg-raster-samples-300dpi/sgray-8/onepage-a4-sgray-8-300dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print onepage-a4 @ 300dpi, srgb-8" - SKIP-IF-MISSING pwg-raster-samples-300dpi/srgb-8/onepage-a4-srgb-8-300dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_300DPI - SKIP-IF-NOT-DEFINED HAVE_SRGB_8 - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR name job-name "onepage-a4" - FILE pwg-raster-samples-300dpi/srgb-8/onepage-a4-srgb-8-300dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print onepage-a4 @ 300dpi, srgb-8, deflate" - SKIP-IF-MISSING pwg-raster-samples-300dpi/srgb-8/onepage-a4-srgb-8-300dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_300DPI - SKIP-IF-NOT-DEFINED HAVE_SRGB_8 - SKIP-IF-NOT-DEFINED HAVE_DEFLATE - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR keyword compression deflate - ATTR name job-name "onepage-a4" - COMPRESSION deflate - FILE pwg-raster-samples-300dpi/srgb-8/onepage-a4-srgb-8-300dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print onepage-a4 @ 300dpi, srgb-8, gzip" - SKIP-IF-MISSING pwg-raster-samples-300dpi/srgb-8/onepage-a4-srgb-8-300dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_300DPI - SKIP-IF-NOT-DEFINED HAVE_SRGB_8 - SKIP-IF-NOT-DEFINED HAVE_GZIP - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR keyword compression gzip - ATTR name job-name "onepage-a4" - COMPRESSION gzip - FILE pwg-raster-samples-300dpi/srgb-8/onepage-a4-srgb-8-300dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print onepage-a4 @ 360dpi, black-1" - SKIP-IF-MISSING pwg-raster-samples-360dpi/black-1/onepage-a4-black-1-360dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_360DPI - SKIP-IF-NOT-DEFINED HAVE_BLACK_1 - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR name job-name "onepage-a4" - FILE pwg-raster-samples-360dpi/black-1/onepage-a4-black-1-360dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print onepage-a4 @ 360dpi, black-1, deflate" - SKIP-IF-MISSING pwg-raster-samples-360dpi/black-1/onepage-a4-black-1-360dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_360DPI - SKIP-IF-NOT-DEFINED HAVE_BLACK_1 - SKIP-IF-NOT-DEFINED HAVE_DEFLATE - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR keyword compression deflate - ATTR name job-name "onepage-a4" - COMPRESSION deflate - FILE pwg-raster-samples-360dpi/black-1/onepage-a4-black-1-360dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print onepage-a4 @ 360dpi, black-1, gzip" - SKIP-IF-MISSING pwg-raster-samples-360dpi/black-1/onepage-a4-black-1-360dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_360DPI - SKIP-IF-NOT-DEFINED HAVE_BLACK_1 - SKIP-IF-NOT-DEFINED HAVE_GZIP - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR keyword compression gzip - ATTR name job-name "onepage-a4" - COMPRESSION gzip - FILE pwg-raster-samples-360dpi/black-1/onepage-a4-black-1-360dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print onepage-a4 @ 360dpi, cmyk-8" - SKIP-IF-MISSING pwg-raster-samples-360dpi/cmyk-8/onepage-a4-cmyk-8-360dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_360DPI - SKIP-IF-NOT-DEFINED HAVE_CMYK_8 - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR name job-name "onepage-a4" - FILE pwg-raster-samples-360dpi/cmyk-8/onepage-a4-cmyk-8-360dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print onepage-a4 @ 360dpi, cmyk-8, deflate" - SKIP-IF-MISSING pwg-raster-samples-360dpi/cmyk-8/onepage-a4-cmyk-8-360dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_360DPI - SKIP-IF-NOT-DEFINED HAVE_CMYK_8 - SKIP-IF-NOT-DEFINED HAVE_DEFLATE - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR keyword compression deflate - ATTR name job-name "onepage-a4" - COMPRESSION deflate - FILE pwg-raster-samples-360dpi/cmyk-8/onepage-a4-cmyk-8-360dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print onepage-a4 @ 360dpi, cmyk-8, gzip" - SKIP-IF-MISSING pwg-raster-samples-360dpi/cmyk-8/onepage-a4-cmyk-8-360dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_360DPI - SKIP-IF-NOT-DEFINED HAVE_CMYK_8 - SKIP-IF-NOT-DEFINED HAVE_GZIP - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR keyword compression gzip - ATTR name job-name "onepage-a4" - COMPRESSION gzip - FILE pwg-raster-samples-360dpi/cmyk-8/onepage-a4-cmyk-8-360dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print onepage-a4 @ 360dpi, sgray-8" - SKIP-IF-MISSING pwg-raster-samples-360dpi/sgray-8/onepage-a4-sgray-8-360dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_360DPI - SKIP-IF-NOT-DEFINED HAVE_SGRAY_8 - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR name job-name "onepage-a4" - FILE pwg-raster-samples-360dpi/sgray-8/onepage-a4-sgray-8-360dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print onepage-a4 @ 360dpi, sgray-8, deflate" - SKIP-IF-MISSING pwg-raster-samples-360dpi/sgray-8/onepage-a4-sgray-8-360dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_360DPI - SKIP-IF-NOT-DEFINED HAVE_SGRAY_8 - SKIP-IF-NOT-DEFINED HAVE_DEFLATE - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR keyword compression deflate - ATTR name job-name "onepage-a4" - COMPRESSION deflate - FILE pwg-raster-samples-360dpi/sgray-8/onepage-a4-sgray-8-360dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print onepage-a4 @ 360dpi, sgray-8, gzip" - SKIP-IF-MISSING pwg-raster-samples-360dpi/sgray-8/onepage-a4-sgray-8-360dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_360DPI - SKIP-IF-NOT-DEFINED HAVE_SGRAY_8 - SKIP-IF-NOT-DEFINED HAVE_GZIP - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR keyword compression gzip - ATTR name job-name "onepage-a4" - COMPRESSION gzip - FILE pwg-raster-samples-360dpi/sgray-8/onepage-a4-sgray-8-360dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print onepage-a4 @ 360dpi, srgb-8" - SKIP-IF-MISSING pwg-raster-samples-360dpi/srgb-8/onepage-a4-srgb-8-360dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_360DPI - SKIP-IF-NOT-DEFINED HAVE_SRGB_8 - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR name job-name "onepage-a4" - FILE pwg-raster-samples-360dpi/srgb-8/onepage-a4-srgb-8-360dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print onepage-a4 @ 360dpi, srgb-8, deflate" - SKIP-IF-MISSING pwg-raster-samples-360dpi/srgb-8/onepage-a4-srgb-8-360dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_360DPI - SKIP-IF-NOT-DEFINED HAVE_SRGB_8 - SKIP-IF-NOT-DEFINED HAVE_DEFLATE - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR keyword compression deflate - ATTR name job-name "onepage-a4" - COMPRESSION deflate - FILE pwg-raster-samples-360dpi/srgb-8/onepage-a4-srgb-8-360dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print onepage-a4 @ 360dpi, srgb-8, gzip" - SKIP-IF-MISSING pwg-raster-samples-360dpi/srgb-8/onepage-a4-srgb-8-360dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_360DPI - SKIP-IF-NOT-DEFINED HAVE_SRGB_8 - SKIP-IF-NOT-DEFINED HAVE_GZIP - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR keyword compression gzip - ATTR name job-name "onepage-a4" - COMPRESSION gzip - FILE pwg-raster-samples-360dpi/srgb-8/onepage-a4-srgb-8-360dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print onepage-a4 @ 600dpi, black-1" - SKIP-IF-MISSING pwg-raster-samples-600dpi/black-1/onepage-a4-black-1-600dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_600DPI - SKIP-IF-NOT-DEFINED HAVE_BLACK_1 - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR name job-name "onepage-a4" - FILE pwg-raster-samples-600dpi/black-1/onepage-a4-black-1-600dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print onepage-a4 @ 600dpi, black-1, deflate" - SKIP-IF-MISSING pwg-raster-samples-600dpi/black-1/onepage-a4-black-1-600dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_600DPI - SKIP-IF-NOT-DEFINED HAVE_BLACK_1 - SKIP-IF-NOT-DEFINED HAVE_DEFLATE - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR keyword compression deflate - ATTR name job-name "onepage-a4" - COMPRESSION deflate - FILE pwg-raster-samples-600dpi/black-1/onepage-a4-black-1-600dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print onepage-a4 @ 600dpi, black-1, gzip" - SKIP-IF-MISSING pwg-raster-samples-600dpi/black-1/onepage-a4-black-1-600dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_600DPI - SKIP-IF-NOT-DEFINED HAVE_BLACK_1 - SKIP-IF-NOT-DEFINED HAVE_GZIP - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR keyword compression gzip - ATTR name job-name "onepage-a4" - COMPRESSION gzip - FILE pwg-raster-samples-600dpi/black-1/onepage-a4-black-1-600dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print onepage-a4 @ 600dpi, cmyk-8" - SKIP-IF-MISSING pwg-raster-samples-600dpi/cmyk-8/onepage-a4-cmyk-8-600dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_600DPI - SKIP-IF-NOT-DEFINED HAVE_CMYK_8 - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR name job-name "onepage-a4" - FILE pwg-raster-samples-600dpi/cmyk-8/onepage-a4-cmyk-8-600dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print onepage-a4 @ 600dpi, cmyk-8, deflate" - SKIP-IF-MISSING pwg-raster-samples-600dpi/cmyk-8/onepage-a4-cmyk-8-600dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_600DPI - SKIP-IF-NOT-DEFINED HAVE_CMYK_8 - SKIP-IF-NOT-DEFINED HAVE_DEFLATE - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR keyword compression deflate - ATTR name job-name "onepage-a4" - COMPRESSION deflate - FILE pwg-raster-samples-600dpi/cmyk-8/onepage-a4-cmyk-8-600dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print onepage-a4 @ 600dpi, cmyk-8, gzip" - SKIP-IF-MISSING pwg-raster-samples-600dpi/cmyk-8/onepage-a4-cmyk-8-600dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_600DPI - SKIP-IF-NOT-DEFINED HAVE_CMYK_8 - SKIP-IF-NOT-DEFINED HAVE_GZIP - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR keyword compression gzip - ATTR name job-name "onepage-a4" - COMPRESSION gzip - FILE pwg-raster-samples-600dpi/cmyk-8/onepage-a4-cmyk-8-600dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print onepage-a4 @ 600dpi, sgray-8" - SKIP-IF-MISSING pwg-raster-samples-600dpi/sgray-8/onepage-a4-sgray-8-600dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_600DPI - SKIP-IF-NOT-DEFINED HAVE_SGRAY_8 - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR name job-name "onepage-a4" - FILE pwg-raster-samples-600dpi/sgray-8/onepage-a4-sgray-8-600dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print onepage-a4 @ 600dpi, sgray-8, deflate" - SKIP-IF-MISSING pwg-raster-samples-600dpi/sgray-8/onepage-a4-sgray-8-600dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_600DPI - SKIP-IF-NOT-DEFINED HAVE_SGRAY_8 - SKIP-IF-NOT-DEFINED HAVE_DEFLATE - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR keyword compression deflate - ATTR name job-name "onepage-a4" - COMPRESSION deflate - FILE pwg-raster-samples-600dpi/sgray-8/onepage-a4-sgray-8-600dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print onepage-a4 @ 600dpi, sgray-8, gzip" - SKIP-IF-MISSING pwg-raster-samples-600dpi/sgray-8/onepage-a4-sgray-8-600dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_600DPI - SKIP-IF-NOT-DEFINED HAVE_SGRAY_8 - SKIP-IF-NOT-DEFINED HAVE_GZIP - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR keyword compression gzip - ATTR name job-name "onepage-a4" - COMPRESSION gzip - FILE pwg-raster-samples-600dpi/sgray-8/onepage-a4-sgray-8-600dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print onepage-a4 @ 600dpi, srgb-8" - SKIP-IF-MISSING pwg-raster-samples-600dpi/srgb-8/onepage-a4-srgb-8-600dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_600DPI - SKIP-IF-NOT-DEFINED HAVE_SRGB_8 - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR name job-name "onepage-a4" - FILE pwg-raster-samples-600dpi/srgb-8/onepage-a4-srgb-8-600dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print onepage-a4 @ 600dpi, srgb-8, deflate" - SKIP-IF-MISSING pwg-raster-samples-600dpi/srgb-8/onepage-a4-srgb-8-600dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_600DPI - SKIP-IF-NOT-DEFINED HAVE_SRGB_8 - SKIP-IF-NOT-DEFINED HAVE_DEFLATE - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR keyword compression deflate - ATTR name job-name "onepage-a4" - COMPRESSION deflate - FILE pwg-raster-samples-600dpi/srgb-8/onepage-a4-srgb-8-600dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print onepage-a4 @ 600dpi, srgb-8, gzip" - SKIP-IF-MISSING pwg-raster-samples-600dpi/srgb-8/onepage-a4-srgb-8-600dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_600DPI - SKIP-IF-NOT-DEFINED HAVE_SRGB_8 - SKIP-IF-NOT-DEFINED HAVE_GZIP - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR keyword compression gzip - ATTR name job-name "onepage-a4" - COMPRESSION gzip - FILE pwg-raster-samples-600dpi/srgb-8/onepage-a4-srgb-8-600dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print onepage-a4 @ 720dpi, black-1" - SKIP-IF-MISSING pwg-raster-samples-720dpi/black-1/onepage-a4-black-1-720dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_720DPI - SKIP-IF-NOT-DEFINED HAVE_BLACK_1 - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR name job-name "onepage-a4" - FILE pwg-raster-samples-720dpi/black-1/onepage-a4-black-1-720dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print onepage-a4 @ 720dpi, black-1, deflate" - SKIP-IF-MISSING pwg-raster-samples-720dpi/black-1/onepage-a4-black-1-720dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_720DPI - SKIP-IF-NOT-DEFINED HAVE_BLACK_1 - SKIP-IF-NOT-DEFINED HAVE_DEFLATE - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR keyword compression deflate - ATTR name job-name "onepage-a4" - COMPRESSION deflate - FILE pwg-raster-samples-720dpi/black-1/onepage-a4-black-1-720dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print onepage-a4 @ 720dpi, black-1, gzip" - SKIP-IF-MISSING pwg-raster-samples-720dpi/black-1/onepage-a4-black-1-720dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_720DPI - SKIP-IF-NOT-DEFINED HAVE_BLACK_1 - SKIP-IF-NOT-DEFINED HAVE_GZIP - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR keyword compression gzip - ATTR name job-name "onepage-a4" - COMPRESSION gzip - FILE pwg-raster-samples-720dpi/black-1/onepage-a4-black-1-720dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print onepage-a4 @ 720dpi, cmyk-8" - SKIP-IF-MISSING pwg-raster-samples-720dpi/cmyk-8/onepage-a4-cmyk-8-720dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_720DPI - SKIP-IF-NOT-DEFINED HAVE_CMYK_8 - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR name job-name "onepage-a4" - FILE pwg-raster-samples-720dpi/cmyk-8/onepage-a4-cmyk-8-720dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print onepage-a4 @ 720dpi, cmyk-8, deflate" - SKIP-IF-MISSING pwg-raster-samples-720dpi/cmyk-8/onepage-a4-cmyk-8-720dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_720DPI - SKIP-IF-NOT-DEFINED HAVE_CMYK_8 - SKIP-IF-NOT-DEFINED HAVE_DEFLATE - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR keyword compression deflate - ATTR name job-name "onepage-a4" - COMPRESSION deflate - FILE pwg-raster-samples-720dpi/cmyk-8/onepage-a4-cmyk-8-720dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print onepage-a4 @ 720dpi, cmyk-8, gzip" - SKIP-IF-MISSING pwg-raster-samples-720dpi/cmyk-8/onepage-a4-cmyk-8-720dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_720DPI - SKIP-IF-NOT-DEFINED HAVE_CMYK_8 - SKIP-IF-NOT-DEFINED HAVE_GZIP - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR keyword compression gzip - ATTR name job-name "onepage-a4" - COMPRESSION gzip - FILE pwg-raster-samples-720dpi/cmyk-8/onepage-a4-cmyk-8-720dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print onepage-a4 @ 720dpi, sgray-8" - SKIP-IF-MISSING pwg-raster-samples-720dpi/sgray-8/onepage-a4-sgray-8-720dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_720DPI - SKIP-IF-NOT-DEFINED HAVE_SGRAY_8 - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR name job-name "onepage-a4" - FILE pwg-raster-samples-720dpi/sgray-8/onepage-a4-sgray-8-720dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print onepage-a4 @ 720dpi, sgray-8, deflate" - SKIP-IF-MISSING pwg-raster-samples-720dpi/sgray-8/onepage-a4-sgray-8-720dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_720DPI - SKIP-IF-NOT-DEFINED HAVE_SGRAY_8 - SKIP-IF-NOT-DEFINED HAVE_DEFLATE - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR keyword compression deflate - ATTR name job-name "onepage-a4" - COMPRESSION deflate - FILE pwg-raster-samples-720dpi/sgray-8/onepage-a4-sgray-8-720dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print onepage-a4 @ 720dpi, sgray-8, gzip" - SKIP-IF-MISSING pwg-raster-samples-720dpi/sgray-8/onepage-a4-sgray-8-720dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_720DPI - SKIP-IF-NOT-DEFINED HAVE_SGRAY_8 - SKIP-IF-NOT-DEFINED HAVE_GZIP - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR keyword compression gzip - ATTR name job-name "onepage-a4" - COMPRESSION gzip - FILE pwg-raster-samples-720dpi/sgray-8/onepage-a4-sgray-8-720dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print onepage-a4 @ 720dpi, srgb-8" - SKIP-IF-MISSING pwg-raster-samples-720dpi/srgb-8/onepage-a4-srgb-8-720dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_720DPI - SKIP-IF-NOT-DEFINED HAVE_SRGB_8 - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR name job-name "onepage-a4" - FILE pwg-raster-samples-720dpi/srgb-8/onepage-a4-srgb-8-720dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print onepage-a4 @ 720dpi, srgb-8, deflate" - SKIP-IF-MISSING pwg-raster-samples-720dpi/srgb-8/onepage-a4-srgb-8-720dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_720DPI - SKIP-IF-NOT-DEFINED HAVE_SRGB_8 - SKIP-IF-NOT-DEFINED HAVE_DEFLATE - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR keyword compression deflate - ATTR name job-name "onepage-a4" - COMPRESSION deflate - FILE pwg-raster-samples-720dpi/srgb-8/onepage-a4-srgb-8-720dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print onepage-a4 @ 720dpi, srgb-8, gzip" - SKIP-IF-MISSING pwg-raster-samples-720dpi/srgb-8/onepage-a4-srgb-8-720dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_720DPI - SKIP-IF-NOT-DEFINED HAVE_SRGB_8 - SKIP-IF-NOT-DEFINED HAVE_GZIP - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR keyword compression gzip - ATTR name job-name "onepage-a4" - COMPRESSION gzip - FILE pwg-raster-samples-720dpi/srgb-8/onepage-a4-srgb-8-720dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print onepage-letter @ 150dpi, black-1" - SKIP-IF-MISSING pwg-raster-samples-150dpi/black-1/onepage-letter-black-1-150dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_150DPI - SKIP-IF-NOT-DEFINED HAVE_BLACK_1 - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR name job-name "onepage-letter" - FILE pwg-raster-samples-150dpi/black-1/onepage-letter-black-1-150dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print onepage-letter @ 150dpi, black-1, deflate" - SKIP-IF-MISSING pwg-raster-samples-150dpi/black-1/onepage-letter-black-1-150dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_150DPI - SKIP-IF-NOT-DEFINED HAVE_BLACK_1 - SKIP-IF-NOT-DEFINED HAVE_DEFLATE - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR keyword compression deflate - ATTR name job-name "onepage-letter" - COMPRESSION deflate - FILE pwg-raster-samples-150dpi/black-1/onepage-letter-black-1-150dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print onepage-letter @ 150dpi, black-1, gzip" - SKIP-IF-MISSING pwg-raster-samples-150dpi/black-1/onepage-letter-black-1-150dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_150DPI - SKIP-IF-NOT-DEFINED HAVE_BLACK_1 - SKIP-IF-NOT-DEFINED HAVE_GZIP - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR keyword compression gzip - ATTR name job-name "onepage-letter" - COMPRESSION gzip - FILE pwg-raster-samples-150dpi/black-1/onepage-letter-black-1-150dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print onepage-letter @ 150dpi, cmyk-8" - SKIP-IF-MISSING pwg-raster-samples-150dpi/cmyk-8/onepage-letter-cmyk-8-150dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_150DPI - SKIP-IF-NOT-DEFINED HAVE_CMYK_8 - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR name job-name "onepage-letter" - FILE pwg-raster-samples-150dpi/cmyk-8/onepage-letter-cmyk-8-150dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print onepage-letter @ 150dpi, cmyk-8, deflate" - SKIP-IF-MISSING pwg-raster-samples-150dpi/cmyk-8/onepage-letter-cmyk-8-150dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_150DPI - SKIP-IF-NOT-DEFINED HAVE_CMYK_8 - SKIP-IF-NOT-DEFINED HAVE_DEFLATE - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR keyword compression deflate - ATTR name job-name "onepage-letter" - COMPRESSION deflate - FILE pwg-raster-samples-150dpi/cmyk-8/onepage-letter-cmyk-8-150dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print onepage-letter @ 150dpi, cmyk-8, gzip" - SKIP-IF-MISSING pwg-raster-samples-150dpi/cmyk-8/onepage-letter-cmyk-8-150dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_150DPI - SKIP-IF-NOT-DEFINED HAVE_CMYK_8 - SKIP-IF-NOT-DEFINED HAVE_GZIP - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR keyword compression gzip - ATTR name job-name "onepage-letter" - COMPRESSION gzip - FILE pwg-raster-samples-150dpi/cmyk-8/onepage-letter-cmyk-8-150dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print onepage-letter @ 150dpi, sgray-8" - SKIP-IF-MISSING pwg-raster-samples-150dpi/sgray-8/onepage-letter-sgray-8-150dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_150DPI - SKIP-IF-NOT-DEFINED HAVE_SGRAY_8 - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR name job-name "onepage-letter" - FILE pwg-raster-samples-150dpi/sgray-8/onepage-letter-sgray-8-150dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print onepage-letter @ 150dpi, sgray-8, deflate" - SKIP-IF-MISSING pwg-raster-samples-150dpi/sgray-8/onepage-letter-sgray-8-150dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_150DPI - SKIP-IF-NOT-DEFINED HAVE_SGRAY_8 - SKIP-IF-NOT-DEFINED HAVE_DEFLATE - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR keyword compression deflate - ATTR name job-name "onepage-letter" - COMPRESSION deflate - FILE pwg-raster-samples-150dpi/sgray-8/onepage-letter-sgray-8-150dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print onepage-letter @ 150dpi, sgray-8, gzip" - SKIP-IF-MISSING pwg-raster-samples-150dpi/sgray-8/onepage-letter-sgray-8-150dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_150DPI - SKIP-IF-NOT-DEFINED HAVE_SGRAY_8 - SKIP-IF-NOT-DEFINED HAVE_GZIP - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR keyword compression gzip - ATTR name job-name "onepage-letter" - COMPRESSION gzip - FILE pwg-raster-samples-150dpi/sgray-8/onepage-letter-sgray-8-150dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print onepage-letter @ 150dpi, srgb-8" - SKIP-IF-MISSING pwg-raster-samples-150dpi/srgb-8/onepage-letter-srgb-8-150dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_150DPI - SKIP-IF-NOT-DEFINED HAVE_SRGB_8 - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR name job-name "onepage-letter" - FILE pwg-raster-samples-150dpi/srgb-8/onepage-letter-srgb-8-150dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print onepage-letter @ 150dpi, srgb-8, deflate" - SKIP-IF-MISSING pwg-raster-samples-150dpi/srgb-8/onepage-letter-srgb-8-150dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_150DPI - SKIP-IF-NOT-DEFINED HAVE_SRGB_8 - SKIP-IF-NOT-DEFINED HAVE_DEFLATE - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR keyword compression deflate - ATTR name job-name "onepage-letter" - COMPRESSION deflate - FILE pwg-raster-samples-150dpi/srgb-8/onepage-letter-srgb-8-150dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print onepage-letter @ 150dpi, srgb-8, gzip" - SKIP-IF-MISSING pwg-raster-samples-150dpi/srgb-8/onepage-letter-srgb-8-150dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_150DPI - SKIP-IF-NOT-DEFINED HAVE_SRGB_8 - SKIP-IF-NOT-DEFINED HAVE_GZIP - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR keyword compression gzip - ATTR name job-name "onepage-letter" - COMPRESSION gzip - FILE pwg-raster-samples-150dpi/srgb-8/onepage-letter-srgb-8-150dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print onepage-letter @ 180dpi, black-1" - SKIP-IF-MISSING pwg-raster-samples-180dpi/black-1/onepage-letter-black-1-180dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_180DPI - SKIP-IF-NOT-DEFINED HAVE_BLACK_1 - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR name job-name "onepage-letter" - FILE pwg-raster-samples-180dpi/black-1/onepage-letter-black-1-180dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print onepage-letter @ 180dpi, black-1, deflate" - SKIP-IF-MISSING pwg-raster-samples-180dpi/black-1/onepage-letter-black-1-180dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_180DPI - SKIP-IF-NOT-DEFINED HAVE_BLACK_1 - SKIP-IF-NOT-DEFINED HAVE_DEFLATE - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR keyword compression deflate - ATTR name job-name "onepage-letter" - COMPRESSION deflate - FILE pwg-raster-samples-180dpi/black-1/onepage-letter-black-1-180dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print onepage-letter @ 180dpi, black-1, gzip" - SKIP-IF-MISSING pwg-raster-samples-180dpi/black-1/onepage-letter-black-1-180dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_180DPI - SKIP-IF-NOT-DEFINED HAVE_BLACK_1 - SKIP-IF-NOT-DEFINED HAVE_GZIP - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR keyword compression gzip - ATTR name job-name "onepage-letter" - COMPRESSION gzip - FILE pwg-raster-samples-180dpi/black-1/onepage-letter-black-1-180dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print onepage-letter @ 180dpi, cmyk-8" - SKIP-IF-MISSING pwg-raster-samples-180dpi/cmyk-8/onepage-letter-cmyk-8-180dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_180DPI - SKIP-IF-NOT-DEFINED HAVE_CMYK_8 - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR name job-name "onepage-letter" - FILE pwg-raster-samples-180dpi/cmyk-8/onepage-letter-cmyk-8-180dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print onepage-letter @ 180dpi, cmyk-8, deflate" - SKIP-IF-MISSING pwg-raster-samples-180dpi/cmyk-8/onepage-letter-cmyk-8-180dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_180DPI - SKIP-IF-NOT-DEFINED HAVE_CMYK_8 - SKIP-IF-NOT-DEFINED HAVE_DEFLATE - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR keyword compression deflate - ATTR name job-name "onepage-letter" - COMPRESSION deflate - FILE pwg-raster-samples-180dpi/cmyk-8/onepage-letter-cmyk-8-180dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print onepage-letter @ 180dpi, cmyk-8, gzip" - SKIP-IF-MISSING pwg-raster-samples-180dpi/cmyk-8/onepage-letter-cmyk-8-180dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_180DPI - SKIP-IF-NOT-DEFINED HAVE_CMYK_8 - SKIP-IF-NOT-DEFINED HAVE_GZIP - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR keyword compression gzip - ATTR name job-name "onepage-letter" - COMPRESSION gzip - FILE pwg-raster-samples-180dpi/cmyk-8/onepage-letter-cmyk-8-180dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print onepage-letter @ 180dpi, sgray-8" - SKIP-IF-MISSING pwg-raster-samples-180dpi/sgray-8/onepage-letter-sgray-8-180dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_180DPI - SKIP-IF-NOT-DEFINED HAVE_SGRAY_8 - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR name job-name "onepage-letter" - FILE pwg-raster-samples-180dpi/sgray-8/onepage-letter-sgray-8-180dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print onepage-letter @ 180dpi, sgray-8, deflate" - SKIP-IF-MISSING pwg-raster-samples-180dpi/sgray-8/onepage-letter-sgray-8-180dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_180DPI - SKIP-IF-NOT-DEFINED HAVE_SGRAY_8 - SKIP-IF-NOT-DEFINED HAVE_DEFLATE - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR keyword compression deflate - ATTR name job-name "onepage-letter" - COMPRESSION deflate - FILE pwg-raster-samples-180dpi/sgray-8/onepage-letter-sgray-8-180dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print onepage-letter @ 180dpi, sgray-8, gzip" - SKIP-IF-MISSING pwg-raster-samples-180dpi/sgray-8/onepage-letter-sgray-8-180dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_180DPI - SKIP-IF-NOT-DEFINED HAVE_SGRAY_8 - SKIP-IF-NOT-DEFINED HAVE_GZIP - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR keyword compression gzip - ATTR name job-name "onepage-letter" - COMPRESSION gzip - FILE pwg-raster-samples-180dpi/sgray-8/onepage-letter-sgray-8-180dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print onepage-letter @ 180dpi, srgb-8" - SKIP-IF-MISSING pwg-raster-samples-180dpi/srgb-8/onepage-letter-srgb-8-180dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_180DPI - SKIP-IF-NOT-DEFINED HAVE_SRGB_8 - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR name job-name "onepage-letter" - FILE pwg-raster-samples-180dpi/srgb-8/onepage-letter-srgb-8-180dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print onepage-letter @ 180dpi, srgb-8, deflate" - SKIP-IF-MISSING pwg-raster-samples-180dpi/srgb-8/onepage-letter-srgb-8-180dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_180DPI - SKIP-IF-NOT-DEFINED HAVE_SRGB_8 - SKIP-IF-NOT-DEFINED HAVE_DEFLATE - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR keyword compression deflate - ATTR name job-name "onepage-letter" - COMPRESSION deflate - FILE pwg-raster-samples-180dpi/srgb-8/onepage-letter-srgb-8-180dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print onepage-letter @ 180dpi, srgb-8, gzip" - SKIP-IF-MISSING pwg-raster-samples-180dpi/srgb-8/onepage-letter-srgb-8-180dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_180DPI - SKIP-IF-NOT-DEFINED HAVE_SRGB_8 - SKIP-IF-NOT-DEFINED HAVE_GZIP - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR keyword compression gzip - ATTR name job-name "onepage-letter" - COMPRESSION gzip - FILE pwg-raster-samples-180dpi/srgb-8/onepage-letter-srgb-8-180dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print onepage-letter @ 300dpi, black-1" - SKIP-IF-MISSING pwg-raster-samples-300dpi/black-1/onepage-letter-black-1-300dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_300DPI - SKIP-IF-NOT-DEFINED HAVE_BLACK_1 - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR name job-name "onepage-letter" - FILE pwg-raster-samples-300dpi/black-1/onepage-letter-black-1-300dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print onepage-letter @ 300dpi, black-1, deflate" - SKIP-IF-MISSING pwg-raster-samples-300dpi/black-1/onepage-letter-black-1-300dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_300DPI - SKIP-IF-NOT-DEFINED HAVE_BLACK_1 - SKIP-IF-NOT-DEFINED HAVE_DEFLATE - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR keyword compression deflate - ATTR name job-name "onepage-letter" - COMPRESSION deflate - FILE pwg-raster-samples-300dpi/black-1/onepage-letter-black-1-300dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print onepage-letter @ 300dpi, black-1, gzip" - SKIP-IF-MISSING pwg-raster-samples-300dpi/black-1/onepage-letter-black-1-300dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_300DPI - SKIP-IF-NOT-DEFINED HAVE_BLACK_1 - SKIP-IF-NOT-DEFINED HAVE_GZIP - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR keyword compression gzip - ATTR name job-name "onepage-letter" - COMPRESSION gzip - FILE pwg-raster-samples-300dpi/black-1/onepage-letter-black-1-300dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print onepage-letter @ 300dpi, cmyk-8" - SKIP-IF-MISSING pwg-raster-samples-300dpi/cmyk-8/onepage-letter-cmyk-8-300dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_300DPI - SKIP-IF-NOT-DEFINED HAVE_CMYK_8 - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR name job-name "onepage-letter" - FILE pwg-raster-samples-300dpi/cmyk-8/onepage-letter-cmyk-8-300dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print onepage-letter @ 300dpi, cmyk-8, deflate" - SKIP-IF-MISSING pwg-raster-samples-300dpi/cmyk-8/onepage-letter-cmyk-8-300dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_300DPI - SKIP-IF-NOT-DEFINED HAVE_CMYK_8 - SKIP-IF-NOT-DEFINED HAVE_DEFLATE - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR keyword compression deflate - ATTR name job-name "onepage-letter" - COMPRESSION deflate - FILE pwg-raster-samples-300dpi/cmyk-8/onepage-letter-cmyk-8-300dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print onepage-letter @ 300dpi, cmyk-8, gzip" - SKIP-IF-MISSING pwg-raster-samples-300dpi/cmyk-8/onepage-letter-cmyk-8-300dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_300DPI - SKIP-IF-NOT-DEFINED HAVE_CMYK_8 - SKIP-IF-NOT-DEFINED HAVE_GZIP - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR keyword compression gzip - ATTR name job-name "onepage-letter" - COMPRESSION gzip - FILE pwg-raster-samples-300dpi/cmyk-8/onepage-letter-cmyk-8-300dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print onepage-letter @ 300dpi, sgray-8" - SKIP-IF-MISSING pwg-raster-samples-300dpi/sgray-8/onepage-letter-sgray-8-300dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_300DPI - SKIP-IF-NOT-DEFINED HAVE_SGRAY_8 - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR name job-name "onepage-letter" - FILE pwg-raster-samples-300dpi/sgray-8/onepage-letter-sgray-8-300dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print onepage-letter @ 300dpi, sgray-8, deflate" - SKIP-IF-MISSING pwg-raster-samples-300dpi/sgray-8/onepage-letter-sgray-8-300dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_300DPI - SKIP-IF-NOT-DEFINED HAVE_SGRAY_8 - SKIP-IF-NOT-DEFINED HAVE_DEFLATE - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR keyword compression deflate - ATTR name job-name "onepage-letter" - COMPRESSION deflate - FILE pwg-raster-samples-300dpi/sgray-8/onepage-letter-sgray-8-300dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print onepage-letter @ 300dpi, sgray-8, gzip" - SKIP-IF-MISSING pwg-raster-samples-300dpi/sgray-8/onepage-letter-sgray-8-300dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_300DPI - SKIP-IF-NOT-DEFINED HAVE_SGRAY_8 - SKIP-IF-NOT-DEFINED HAVE_GZIP - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR keyword compression gzip - ATTR name job-name "onepage-letter" - COMPRESSION gzip - FILE pwg-raster-samples-300dpi/sgray-8/onepage-letter-sgray-8-300dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print onepage-letter @ 300dpi, srgb-8" - SKIP-IF-MISSING pwg-raster-samples-300dpi/srgb-8/onepage-letter-srgb-8-300dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_300DPI - SKIP-IF-NOT-DEFINED HAVE_SRGB_8 - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR name job-name "onepage-letter" - FILE pwg-raster-samples-300dpi/srgb-8/onepage-letter-srgb-8-300dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print onepage-letter @ 300dpi, srgb-8, deflate" - SKIP-IF-MISSING pwg-raster-samples-300dpi/srgb-8/onepage-letter-srgb-8-300dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_300DPI - SKIP-IF-NOT-DEFINED HAVE_SRGB_8 - SKIP-IF-NOT-DEFINED HAVE_DEFLATE - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR keyword compression deflate - ATTR name job-name "onepage-letter" - COMPRESSION deflate - FILE pwg-raster-samples-300dpi/srgb-8/onepage-letter-srgb-8-300dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print onepage-letter @ 300dpi, srgb-8, gzip" - SKIP-IF-MISSING pwg-raster-samples-300dpi/srgb-8/onepage-letter-srgb-8-300dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_300DPI - SKIP-IF-NOT-DEFINED HAVE_SRGB_8 - SKIP-IF-NOT-DEFINED HAVE_GZIP - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR keyword compression gzip - ATTR name job-name "onepage-letter" - COMPRESSION gzip - FILE pwg-raster-samples-300dpi/srgb-8/onepage-letter-srgb-8-300dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print onepage-letter @ 360dpi, black-1" - SKIP-IF-MISSING pwg-raster-samples-360dpi/black-1/onepage-letter-black-1-360dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_360DPI - SKIP-IF-NOT-DEFINED HAVE_BLACK_1 - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR name job-name "onepage-letter" - FILE pwg-raster-samples-360dpi/black-1/onepage-letter-black-1-360dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print onepage-letter @ 360dpi, black-1, deflate" - SKIP-IF-MISSING pwg-raster-samples-360dpi/black-1/onepage-letter-black-1-360dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_360DPI - SKIP-IF-NOT-DEFINED HAVE_BLACK_1 - SKIP-IF-NOT-DEFINED HAVE_DEFLATE - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR keyword compression deflate - ATTR name job-name "onepage-letter" - COMPRESSION deflate - FILE pwg-raster-samples-360dpi/black-1/onepage-letter-black-1-360dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print onepage-letter @ 360dpi, black-1, gzip" - SKIP-IF-MISSING pwg-raster-samples-360dpi/black-1/onepage-letter-black-1-360dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_360DPI - SKIP-IF-NOT-DEFINED HAVE_BLACK_1 - SKIP-IF-NOT-DEFINED HAVE_GZIP - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR keyword compression gzip - ATTR name job-name "onepage-letter" - COMPRESSION gzip - FILE pwg-raster-samples-360dpi/black-1/onepage-letter-black-1-360dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print onepage-letter @ 360dpi, cmyk-8" - SKIP-IF-MISSING pwg-raster-samples-360dpi/cmyk-8/onepage-letter-cmyk-8-360dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_360DPI - SKIP-IF-NOT-DEFINED HAVE_CMYK_8 - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR name job-name "onepage-letter" - FILE pwg-raster-samples-360dpi/cmyk-8/onepage-letter-cmyk-8-360dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print onepage-letter @ 360dpi, cmyk-8, deflate" - SKIP-IF-MISSING pwg-raster-samples-360dpi/cmyk-8/onepage-letter-cmyk-8-360dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_360DPI - SKIP-IF-NOT-DEFINED HAVE_CMYK_8 - SKIP-IF-NOT-DEFINED HAVE_DEFLATE - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR keyword compression deflate - ATTR name job-name "onepage-letter" - COMPRESSION deflate - FILE pwg-raster-samples-360dpi/cmyk-8/onepage-letter-cmyk-8-360dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print onepage-letter @ 360dpi, cmyk-8, gzip" - SKIP-IF-MISSING pwg-raster-samples-360dpi/cmyk-8/onepage-letter-cmyk-8-360dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_360DPI - SKIP-IF-NOT-DEFINED HAVE_CMYK_8 - SKIP-IF-NOT-DEFINED HAVE_GZIP - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR keyword compression gzip - ATTR name job-name "onepage-letter" - COMPRESSION gzip - FILE pwg-raster-samples-360dpi/cmyk-8/onepage-letter-cmyk-8-360dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print onepage-letter @ 360dpi, sgray-8" - SKIP-IF-MISSING pwg-raster-samples-360dpi/sgray-8/onepage-letter-sgray-8-360dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_360DPI - SKIP-IF-NOT-DEFINED HAVE_SGRAY_8 - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR name job-name "onepage-letter" - FILE pwg-raster-samples-360dpi/sgray-8/onepage-letter-sgray-8-360dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print onepage-letter @ 360dpi, sgray-8, deflate" - SKIP-IF-MISSING pwg-raster-samples-360dpi/sgray-8/onepage-letter-sgray-8-360dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_360DPI - SKIP-IF-NOT-DEFINED HAVE_SGRAY_8 - SKIP-IF-NOT-DEFINED HAVE_DEFLATE - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR keyword compression deflate - ATTR name job-name "onepage-letter" - COMPRESSION deflate - FILE pwg-raster-samples-360dpi/sgray-8/onepage-letter-sgray-8-360dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print onepage-letter @ 360dpi, sgray-8, gzip" - SKIP-IF-MISSING pwg-raster-samples-360dpi/sgray-8/onepage-letter-sgray-8-360dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_360DPI - SKIP-IF-NOT-DEFINED HAVE_SGRAY_8 - SKIP-IF-NOT-DEFINED HAVE_GZIP - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR keyword compression gzip - ATTR name job-name "onepage-letter" - COMPRESSION gzip - FILE pwg-raster-samples-360dpi/sgray-8/onepage-letter-sgray-8-360dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print onepage-letter @ 360dpi, srgb-8" - SKIP-IF-MISSING pwg-raster-samples-360dpi/srgb-8/onepage-letter-srgb-8-360dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_360DPI - SKIP-IF-NOT-DEFINED HAVE_SRGB_8 - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR name job-name "onepage-letter" - FILE pwg-raster-samples-360dpi/srgb-8/onepage-letter-srgb-8-360dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print onepage-letter @ 360dpi, srgb-8, deflate" - SKIP-IF-MISSING pwg-raster-samples-360dpi/srgb-8/onepage-letter-srgb-8-360dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_360DPI - SKIP-IF-NOT-DEFINED HAVE_SRGB_8 - SKIP-IF-NOT-DEFINED HAVE_DEFLATE - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR keyword compression deflate - ATTR name job-name "onepage-letter" - COMPRESSION deflate - FILE pwg-raster-samples-360dpi/srgb-8/onepage-letter-srgb-8-360dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print onepage-letter @ 360dpi, srgb-8, gzip" - SKIP-IF-MISSING pwg-raster-samples-360dpi/srgb-8/onepage-letter-srgb-8-360dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_360DPI - SKIP-IF-NOT-DEFINED HAVE_SRGB_8 - SKIP-IF-NOT-DEFINED HAVE_GZIP - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR keyword compression gzip - ATTR name job-name "onepage-letter" - COMPRESSION gzip - FILE pwg-raster-samples-360dpi/srgb-8/onepage-letter-srgb-8-360dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print onepage-letter @ 600dpi, black-1" - SKIP-IF-MISSING pwg-raster-samples-600dpi/black-1/onepage-letter-black-1-600dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_600DPI - SKIP-IF-NOT-DEFINED HAVE_BLACK_1 - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR name job-name "onepage-letter" - FILE pwg-raster-samples-600dpi/black-1/onepage-letter-black-1-600dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print onepage-letter @ 600dpi, black-1, deflate" - SKIP-IF-MISSING pwg-raster-samples-600dpi/black-1/onepage-letter-black-1-600dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_600DPI - SKIP-IF-NOT-DEFINED HAVE_BLACK_1 - SKIP-IF-NOT-DEFINED HAVE_DEFLATE - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR keyword compression deflate - ATTR name job-name "onepage-letter" - COMPRESSION deflate - FILE pwg-raster-samples-600dpi/black-1/onepage-letter-black-1-600dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print onepage-letter @ 600dpi, black-1, gzip" - SKIP-IF-MISSING pwg-raster-samples-600dpi/black-1/onepage-letter-black-1-600dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_600DPI - SKIP-IF-NOT-DEFINED HAVE_BLACK_1 - SKIP-IF-NOT-DEFINED HAVE_GZIP - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR keyword compression gzip - ATTR name job-name "onepage-letter" - COMPRESSION gzip - FILE pwg-raster-samples-600dpi/black-1/onepage-letter-black-1-600dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print onepage-letter @ 600dpi, cmyk-8" - SKIP-IF-MISSING pwg-raster-samples-600dpi/cmyk-8/onepage-letter-cmyk-8-600dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_600DPI - SKIP-IF-NOT-DEFINED HAVE_CMYK_8 - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR name job-name "onepage-letter" - FILE pwg-raster-samples-600dpi/cmyk-8/onepage-letter-cmyk-8-600dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print onepage-letter @ 600dpi, cmyk-8, deflate" - SKIP-IF-MISSING pwg-raster-samples-600dpi/cmyk-8/onepage-letter-cmyk-8-600dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_600DPI - SKIP-IF-NOT-DEFINED HAVE_CMYK_8 - SKIP-IF-NOT-DEFINED HAVE_DEFLATE - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR keyword compression deflate - ATTR name job-name "onepage-letter" - COMPRESSION deflate - FILE pwg-raster-samples-600dpi/cmyk-8/onepage-letter-cmyk-8-600dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print onepage-letter @ 600dpi, cmyk-8, gzip" - SKIP-IF-MISSING pwg-raster-samples-600dpi/cmyk-8/onepage-letter-cmyk-8-600dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_600DPI - SKIP-IF-NOT-DEFINED HAVE_CMYK_8 - SKIP-IF-NOT-DEFINED HAVE_GZIP - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR keyword compression gzip - ATTR name job-name "onepage-letter" - COMPRESSION gzip - FILE pwg-raster-samples-600dpi/cmyk-8/onepage-letter-cmyk-8-600dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print onepage-letter @ 600dpi, sgray-8" - SKIP-IF-MISSING pwg-raster-samples-600dpi/sgray-8/onepage-letter-sgray-8-600dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_600DPI - SKIP-IF-NOT-DEFINED HAVE_SGRAY_8 - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR name job-name "onepage-letter" - FILE pwg-raster-samples-600dpi/sgray-8/onepage-letter-sgray-8-600dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print onepage-letter @ 600dpi, sgray-8, deflate" - SKIP-IF-MISSING pwg-raster-samples-600dpi/sgray-8/onepage-letter-sgray-8-600dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_600DPI - SKIP-IF-NOT-DEFINED HAVE_SGRAY_8 - SKIP-IF-NOT-DEFINED HAVE_DEFLATE - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR keyword compression deflate - ATTR name job-name "onepage-letter" - COMPRESSION deflate - FILE pwg-raster-samples-600dpi/sgray-8/onepage-letter-sgray-8-600dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print onepage-letter @ 600dpi, sgray-8, gzip" - SKIP-IF-MISSING pwg-raster-samples-600dpi/sgray-8/onepage-letter-sgray-8-600dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_600DPI - SKIP-IF-NOT-DEFINED HAVE_SGRAY_8 - SKIP-IF-NOT-DEFINED HAVE_GZIP - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR keyword compression gzip - ATTR name job-name "onepage-letter" - COMPRESSION gzip - FILE pwg-raster-samples-600dpi/sgray-8/onepage-letter-sgray-8-600dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print onepage-letter @ 600dpi, srgb-8" - SKIP-IF-MISSING pwg-raster-samples-600dpi/srgb-8/onepage-letter-srgb-8-600dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_600DPI - SKIP-IF-NOT-DEFINED HAVE_SRGB_8 - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR name job-name "onepage-letter" - FILE pwg-raster-samples-600dpi/srgb-8/onepage-letter-srgb-8-600dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print onepage-letter @ 600dpi, srgb-8, deflate" - SKIP-IF-MISSING pwg-raster-samples-600dpi/srgb-8/onepage-letter-srgb-8-600dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_600DPI - SKIP-IF-NOT-DEFINED HAVE_SRGB_8 - SKIP-IF-NOT-DEFINED HAVE_DEFLATE - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR keyword compression deflate - ATTR name job-name "onepage-letter" - COMPRESSION deflate - FILE pwg-raster-samples-600dpi/srgb-8/onepage-letter-srgb-8-600dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print onepage-letter @ 600dpi, srgb-8, gzip" - SKIP-IF-MISSING pwg-raster-samples-600dpi/srgb-8/onepage-letter-srgb-8-600dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_600DPI - SKIP-IF-NOT-DEFINED HAVE_SRGB_8 - SKIP-IF-NOT-DEFINED HAVE_GZIP - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR keyword compression gzip - ATTR name job-name "onepage-letter" - COMPRESSION gzip - FILE pwg-raster-samples-600dpi/srgb-8/onepage-letter-srgb-8-600dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print onepage-letter @ 720dpi, black-1" - SKIP-IF-MISSING pwg-raster-samples-720dpi/black-1/onepage-letter-black-1-720dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_720DPI - SKIP-IF-NOT-DEFINED HAVE_BLACK_1 - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR name job-name "onepage-letter" - FILE pwg-raster-samples-720dpi/black-1/onepage-letter-black-1-720dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print onepage-letter @ 720dpi, black-1, deflate" - SKIP-IF-MISSING pwg-raster-samples-720dpi/black-1/onepage-letter-black-1-720dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_720DPI - SKIP-IF-NOT-DEFINED HAVE_BLACK_1 - SKIP-IF-NOT-DEFINED HAVE_DEFLATE - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR keyword compression deflate - ATTR name job-name "onepage-letter" - COMPRESSION deflate - FILE pwg-raster-samples-720dpi/black-1/onepage-letter-black-1-720dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print onepage-letter @ 720dpi, black-1, gzip" - SKIP-IF-MISSING pwg-raster-samples-720dpi/black-1/onepage-letter-black-1-720dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_720DPI - SKIP-IF-NOT-DEFINED HAVE_BLACK_1 - SKIP-IF-NOT-DEFINED HAVE_GZIP - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR keyword compression gzip - ATTR name job-name "onepage-letter" - COMPRESSION gzip - FILE pwg-raster-samples-720dpi/black-1/onepage-letter-black-1-720dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print onepage-letter @ 720dpi, cmyk-8" - SKIP-IF-MISSING pwg-raster-samples-720dpi/cmyk-8/onepage-letter-cmyk-8-720dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_720DPI - SKIP-IF-NOT-DEFINED HAVE_CMYK_8 - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR name job-name "onepage-letter" - FILE pwg-raster-samples-720dpi/cmyk-8/onepage-letter-cmyk-8-720dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print onepage-letter @ 720dpi, cmyk-8, deflate" - SKIP-IF-MISSING pwg-raster-samples-720dpi/cmyk-8/onepage-letter-cmyk-8-720dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_720DPI - SKIP-IF-NOT-DEFINED HAVE_CMYK_8 - SKIP-IF-NOT-DEFINED HAVE_DEFLATE - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR keyword compression deflate - ATTR name job-name "onepage-letter" - COMPRESSION deflate - FILE pwg-raster-samples-720dpi/cmyk-8/onepage-letter-cmyk-8-720dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print onepage-letter @ 720dpi, cmyk-8, gzip" - SKIP-IF-MISSING pwg-raster-samples-720dpi/cmyk-8/onepage-letter-cmyk-8-720dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_720DPI - SKIP-IF-NOT-DEFINED HAVE_CMYK_8 - SKIP-IF-NOT-DEFINED HAVE_GZIP - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR keyword compression gzip - ATTR name job-name "onepage-letter" - COMPRESSION gzip - FILE pwg-raster-samples-720dpi/cmyk-8/onepage-letter-cmyk-8-720dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print onepage-letter @ 720dpi, sgray-8" - SKIP-IF-MISSING pwg-raster-samples-720dpi/sgray-8/onepage-letter-sgray-8-720dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_720DPI - SKIP-IF-NOT-DEFINED HAVE_SGRAY_8 - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR name job-name "onepage-letter" - FILE pwg-raster-samples-720dpi/sgray-8/onepage-letter-sgray-8-720dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print onepage-letter @ 720dpi, sgray-8, deflate" - SKIP-IF-MISSING pwg-raster-samples-720dpi/sgray-8/onepage-letter-sgray-8-720dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_720DPI - SKIP-IF-NOT-DEFINED HAVE_SGRAY_8 - SKIP-IF-NOT-DEFINED HAVE_DEFLATE - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR keyword compression deflate - ATTR name job-name "onepage-letter" - COMPRESSION deflate - FILE pwg-raster-samples-720dpi/sgray-8/onepage-letter-sgray-8-720dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print onepage-letter @ 720dpi, sgray-8, gzip" - SKIP-IF-MISSING pwg-raster-samples-720dpi/sgray-8/onepage-letter-sgray-8-720dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_720DPI - SKIP-IF-NOT-DEFINED HAVE_SGRAY_8 - SKIP-IF-NOT-DEFINED HAVE_GZIP - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR keyword compression gzip - ATTR name job-name "onepage-letter" - COMPRESSION gzip - FILE pwg-raster-samples-720dpi/sgray-8/onepage-letter-sgray-8-720dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print onepage-letter @ 720dpi, srgb-8" - SKIP-IF-MISSING pwg-raster-samples-720dpi/srgb-8/onepage-letter-srgb-8-720dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_720DPI - SKIP-IF-NOT-DEFINED HAVE_SRGB_8 - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR name job-name "onepage-letter" - FILE pwg-raster-samples-720dpi/srgb-8/onepage-letter-srgb-8-720dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print onepage-letter @ 720dpi, srgb-8, deflate" - SKIP-IF-MISSING pwg-raster-samples-720dpi/srgb-8/onepage-letter-srgb-8-720dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_720DPI - SKIP-IF-NOT-DEFINED HAVE_SRGB_8 - SKIP-IF-NOT-DEFINED HAVE_DEFLATE - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR keyword compression deflate - ATTR name job-name "onepage-letter" - COMPRESSION deflate - FILE pwg-raster-samples-720dpi/srgb-8/onepage-letter-srgb-8-720dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - -{ - NAME "Print onepage-letter @ 720dpi, srgb-8, gzip" - SKIP-IF-MISSING pwg-raster-samples-720dpi/srgb-8/onepage-letter-srgb-8-720dpi.pwg - SKIP-IF-NOT-DEFINED HAVE_720DPI - SKIP-IF-NOT-DEFINED HAVE_SRGB_8 - SKIP-IF-NOT-DEFINED HAVE_GZIP - - OPERATION Print-Job - GROUP operation-attributes-tag - ATTR charset attributes-charset utf-8 - ATTR naturalLanguage attributes-natural-language en - ATTR uri printer-uri $uri - ATTR name requesting-user-name $user - ATTR mimeMediaType document-format image/pwg-raster - ATTR keyword compression gzip - ATTR name job-name "onepage-letter" - COMPRESSION gzip - FILE pwg-raster-samples-720dpi/srgb-8/onepage-letter-srgb-8-720dpi.pwg - - STATUS successful-ok - STATUS server-error-busy REPEAT-MATCH -} - - -# -# End of "$Id$". -# From 1ce8a502bb8d3ae057a9539f533600c02cf3d589 Mon Sep 17 00:00:00 2001 From: Michael R Sweet Date: Fri, 3 Jun 2022 16:08:13 -0400 Subject: [PATCH 15/15] Fix some ippeveprinter bugs with the ippserver attribute file support. Add missing IPP job template attributes to test ippserver file. Update test suite to use IPP/2.0 for tests. --- tools/ippeveprinter.c | 130 ++++++++++++++---------------------------- tools/run-tests.sh | 2 +- tools/test.conf | 9 +++ 3 files changed, 52 insertions(+), 89 deletions(-) diff --git a/tools/ippeveprinter.c b/tools/ippeveprinter.c index 6b19bc92b..1b0262baf 100644 --- a/tools/ippeveprinter.c +++ b/tools/ippeveprinter.c @@ -141,11 +141,7 @@ static const char * const ippeve_preason_strings[] = * URL scheme for web resources... */ -#ifdef HAVE_TLS -# define WEB_SCHEME "https" -#else -# define WEB_SCHEME "http" -#endif /* HAVE_TLS */ +#define WEB_SCHEME "https" /* @@ -378,20 +374,18 @@ main(int argc, /* I - Number of command-line args */ *device_uri = NULL, /* Device URI */ *output_format = NULL, /* Output format */ *icon = NULL, /* Icon file */ -#ifdef HAVE_TLS *keypath = NULL, /* Keychain path */ -#endif /* HAVE_TLS */ *location = "", /* Location of printer */ *make = "Example", /* Manufacturer */ *model = "Printer", /* Model */ *name = NULL, /* Printer name */ *strings = NULL, /* Strings file */ *subtypes = "_print"; /* DNS-SD service subtype */ - int legacy = 0, /* Legacy mode? */ - duplex = 0, /* Duplex mode */ - ppm = 10, /* Pages per minute for mono */ - ppm_color = 0, /* Pages per minute for color */ - web_forms = 1; /* Enable web site forms? */ + bool legacy = false, /* Legacy mode? */ + duplex = false, /* Duplex mode */ + web_forms = true; /* Enable web site forms? */ + int ppm = 10, /* Pages per minute for mono */ + ppm_color = 0; /* Pages per minute for color */ ipp_t *attrs = NULL; /* Printer attributes */ char directory[1024] = ""; /* Spool directory */ cups_array_t *docformats = NULL; /* Supported formats */ @@ -412,7 +406,7 @@ main(int argc, /* I - Number of command-line args */ } else if (!strcmp(argv[i], "--no-web-forms")) { - web_forms = 0; + web_forms = false; } else if (!strcmp(argv[i], "--pam-service")) { @@ -439,8 +433,8 @@ main(int argc, /* I - Number of command-line args */ switch (*opt) { case '2' : /* -2 (enable 2-sided printing) */ - duplex = 1; - legacy = 1; + duplex = true; + legacy = true; break; case 'A' : /* -A (enable authentication) */ @@ -464,7 +458,6 @@ main(int argc, /* I - Number of command-line args */ output_format = argv[i]; break; -#ifdef HAVE_TLS case 'K' : /* -K keypath */ i ++; if (i >= argc) @@ -472,7 +465,6 @@ main(int argc, /* I - Number of command-line args */ keypath = argv[i]; break; -#endif /* HAVE_TLS */ case 'M' : /* -M manufacturer */ i ++; @@ -480,7 +472,7 @@ main(int argc, /* I - Number of command-line args */ usage(1); make = argv[i]; - legacy = 1; + legacy = true; break; case 'S' : /* -S filename.strings */ @@ -534,7 +526,7 @@ main(int argc, /* I - Number of command-line args */ usage(1); docformats = cupsArrayNewStrings(argv[i], ','); - legacy = 1; + legacy = true; break; case 'i' : /* -i icon.png */ @@ -563,7 +555,7 @@ main(int argc, /* I - Number of command-line args */ usage(1); model = argv[i]; - legacy = 1; + legacy = true; break; case 'n' : /* -n hostname */ @@ -598,7 +590,7 @@ main(int argc, /* I - Number of command-line args */ if (sscanf(argv[i], "%d,%d", &ppm, &ppm_color) < 1) usage(1); - legacy = 1; + legacy = true; break; case 'v' : /* -v (be verbose) */ @@ -669,22 +661,20 @@ main(int argc, /* I - Number of command-line args */ * Create the printer... */ - if (!docformats) - docformats = cupsArrayNewStrings(ppm_color > 0 ? "image/jpeg,image/pwg-raster,image/urf": "image/pwg-raster,image/urf", ','); - if (attrfile) attrs = load_ippserver_attributes(servername, serverport, attrfile, docformats); else attrs = load_legacy_attributes(make, model, ppm, ppm_color, duplex, docformats); + if (!docformats && !ippFindAttribute(attrs, "document-format-supported", IPP_TAG_MIMETYPE)) + docformats = cupsArrayNewStrings(ppm_color > 0 ? "image/jpeg,image/pwg-raster,image/urf": "image/pwg-raster,image/urf", ','); + if ((printer = create_printer(servername, serverport, name, location, icon, strings, docformats, subtypes, directory, command, device_uri, output_format, attrs)) == NULL) return (1); printer->web_forms = web_forms; -#ifdef HAVE_TLS cupsSetServerCredentials(keypath, printer->hostname, 1); -#endif /* HAVE_TLS */ /* * Run the print service... @@ -1535,12 +1525,9 @@ create_printer( { /* reference-uri-schemes-supported */ "file", "ftp", - "http" -#ifdef HAVE_TLS - , "https" -#endif /* HAVE_TLS */ + "http", + "https" }; -#ifdef HAVE_TLS static const char * const uri_authentication_supported[] = { /* uri-authentication-supported values */ "none", @@ -1556,7 +1543,6 @@ create_printer( "none", "tls" }; -#endif /* HAVE_TLS */ static const char * const which_jobs[] = { /* which-jobs-supported values */ "completed", @@ -1744,11 +1730,7 @@ create_printer( if (Verbosity) { -#ifdef HAVE_TLS fprintf(stderr, "printer-uri-supported=\"ipp://%s:%d/ipp/print\",\"ipps://%s:%d/ipp/print\"\n", printer->hostname, printer->port, printer->hostname, printer->port); -#else - fprintf(stderr, "printer-uri-supported=\"ipp://%s:%d/ipp/print\"\n", printer->hostname, printer->port); -#endif /* HAVE_TLS */ fprintf(stderr, "printer-uuid=\"%s\"\n", uuid); } @@ -1784,11 +1766,14 @@ create_printer( * Assemble the final list of document formats... */ - if (!cupsArrayFind(docformats, (void *)"application/octet-stream")) - cupsArrayAdd(docformats, (void *)"application/octet-stream"); + if (docformats) + { + if (!cupsArrayFind(docformats, (void *)"application/octet-stream")) + cupsArrayAdd(docformats, (void *)"application/octet-stream"); - for (num_formats = 0, format = (const char *)cupsArrayGetFirst(docformats); format && num_formats < (int)(sizeof(formats) / sizeof(formats[0])); format = (const char *)cupsArrayGetNext(docformats)) - formats[num_formats ++] = format; + for (num_formats = 0, format = (const char *)cupsArrayGetFirst(docformats); format && num_formats < (int)(sizeof(formats) / sizeof(formats[0])); format = (const char *)cupsArrayGetNext(docformats)) + formats[num_formats ++] = format; + } /* * Get the list of attributes that can be used when creating a job... @@ -1829,11 +1814,16 @@ create_printer( if (!ippFindAttribute(printer->attrs, "compression-supported", IPP_TAG_ZERO)) ippAddStrings(printer->attrs, IPP_TAG_PRINTER, IPP_CONST_TAG(IPP_TAG_KEYWORD), "compression-supported", (int)(sizeof(compressions) / sizeof(compressions[0])), NULL, compressions); - /* document-format-default */ - ippAddString(printer->attrs, IPP_TAG_PRINTER, IPP_CONST_TAG(IPP_TAG_MIMETYPE), "document-format-default", NULL, "application/octet-stream"); + if (docformats) + { + /* document-format-default */ + if (!ippFindAttribute(printer->attrs, "document-format-default", IPP_TAG_MIMETYPE)) + ippAddString(printer->attrs, IPP_TAG_PRINTER, IPP_CONST_TAG(IPP_TAG_MIMETYPE), "document-format-default", NULL, "application/octet-stream"); - /* document-format-supported */ - ippAddStrings(printer->attrs, IPP_TAG_PRINTER, IPP_TAG_MIMETYPE, "document-format-supported", num_formats, NULL, formats); + /* document-format-supported */ + if (!ippFindAttribute(printer->attrs, "document-format-supported", IPP_TAG_MIMETYPE)) + ippAddStrings(printer->attrs, IPP_TAG_PRINTER, IPP_TAG_MIMETYPE, "document-format-supported", num_formats, NULL, formats); + } /* generated-natural-language-supported */ ippAddString(printer->attrs, IPP_TAG_PRINTER, IPP_CONST_TAG(IPP_TAG_LANGUAGE), "generated-natural-language-supported", NULL, "en"); @@ -1935,24 +1925,13 @@ create_printer( ippAddStrings(printer->attrs, IPP_TAG_PRINTER, IPP_CONST_TAG(IPP_TAG_URISCHEME), "reference-uri-schemes-supported", (int)(sizeof(reference_uri_schemes_supported) / sizeof(reference_uri_schemes_supported[0])), NULL, reference_uri_schemes_supported); /* uri-authentication-supported */ -#ifdef HAVE_TLS if (PAMService) ippAddStrings(printer->attrs, IPP_TAG_PRINTER, IPP_CONST_TAG(IPP_TAG_KEYWORD), "uri-authentication-supported", 2, NULL, uri_authentication_basic); else ippAddStrings(printer->attrs, IPP_TAG_PRINTER, IPP_CONST_TAG(IPP_TAG_KEYWORD), "uri-authentication-supported", 2, NULL, uri_authentication_supported); -#else - if (PAMService) - ippAddString(printer->attrs, IPP_TAG_PRINTER, IPP_CONST_TAG(IPP_TAG_KEYWORD), "uri-authentication-supported", NULL, "basic"); - else - ippAddString(printer->attrs, IPP_TAG_PRINTER, IPP_CONST_TAG(IPP_TAG_KEYWORD), "uri-authentication-supported", NULL, "none"); -#endif /* HAVE_TLS */ /* uri-security-supported */ -#ifdef HAVE_TLS ippAddStrings(printer->attrs, IPP_TAG_PRINTER, IPP_CONST_TAG(IPP_TAG_KEYWORD), "uri-security-supported", 2, NULL, uri_security_supported); -#else - ippAddString(printer->attrs, IPP_TAG_PRINTER, IPP_CONST_TAG(IPP_TAG_KEYWORD), "uri-security-supported", NULL, "none"); -#endif /* HAVE_TLS */ /* which-jobs-supported */ ippAddStrings(printer->attrs, IPP_TAG_PRINTER, IPP_CONST_TAG(IPP_TAG_KEYWORD), "which-jobs-supported", sizeof(which_jobs) / sizeof(which_jobs[0]), NULL, which_jobs); @@ -2539,11 +2518,7 @@ finish_document_uri( goto abort_job; } - if (strcmp(scheme, "file") && -#ifdef HAVE_TLS - strcmp(scheme, "https") && -#endif /* HAVE_TLS */ - strcmp(scheme, "http")) + if (strcmp(scheme, "file") && strcmp(scheme, "https") && strcmp(scheme, "http")) { respond_ipp(client, IPP_STATUS_ERROR_URI_SCHEME, "URI scheme \"%s\" not supported.", scheme); @@ -2620,12 +2595,10 @@ finish_document_uri( } else { -#ifdef HAVE_TLS if (port == 443 || !strcmp(scheme, "https")) encryption = HTTP_ENCRYPTION_ALWAYS; else -#endif /* HAVE_TLS */ - encryption = HTTP_ENCRYPTION_IF_REQUESTED; + encryption = HTTP_ENCRYPTION_IF_REQUESTED; if ((http = httpConnect(hostname, port, NULL, AF_UNSPEC, encryption, 1, 30000, NULL)) == NULL) { @@ -3692,10 +3665,8 @@ ipp_get_printer_attributes( httpAssembleURI(HTTP_URI_CODING_ALL, uris[0], sizeof(uris[0]), "ipp", NULL, client->host_field, client->host_port, "/ipp/print"); values[num_values ++] = uris[0]; -#ifdef HAVE_TLS httpAssembleURI(HTTP_URI_CODING_ALL, uris[1], sizeof(uris[1]), "ipps", NULL, client->host_field, client->host_port, "/ipp/print"); values[num_values ++] = uris[1]; -#endif /* HAVE_TLS */ ippAddStrings(client->response, IPP_TAG_PRINTER, IPP_TAG_URI, "printer-uri-supported", num_values, NULL, values); } @@ -4069,6 +4040,7 @@ ippserver_attr_cb( "job-ids-supported", "job-k-octets-supported", "job-settable-attributes-supported", + "media-col-supported", "multiple-document-jobs-supported", "multiple-operation-time-out", "multiple-operation-time-out-action", @@ -5101,13 +5073,10 @@ process_client(ippeve_client_t *client) /* I - Client */ * Loop until we are out of requests or timeout (30 seconds)... */ -#ifdef HAVE_TLS - int first_time = 1; /* First time request? */ -#endif /* HAVE_TLS */ + bool first_time = true; /* First time request? */ while (httpWait(client->http, 30000)) { -#ifdef HAVE_TLS if (first_time) { /* @@ -5129,9 +5098,8 @@ process_client(ippeve_client_t *client) /* I - Client */ fprintf(stderr, "%s Connection now encrypted.\n", client->hostname); } - first_time = 0; + first_time = false; } -#endif /* HAVE_TLS */ if (!process_http(client)) break; @@ -5304,7 +5272,6 @@ process_http(ippeve_client_t *client) /* I - Client connection */ if (!strcasecmp(httpGetField(client->http, HTTP_FIELD_CONNECTION), "Upgrade")) { -#ifdef HAVE_TLS if (strstr(httpGetField(client->http, HTTP_FIELD_UPGRADE), "TLS/") != NULL && !httpIsEncrypted(client->http)) { if (!respond_http(client, HTTP_STATUS_SWITCHING_PROTOCOLS, NULL, NULL, 0)) @@ -5320,10 +5287,7 @@ process_http(ippeve_client_t *client) /* I - Client connection */ fprintf(stderr, "%s Connection now encrypted.\n", client->hostname); } - else -#endif /* HAVE_TLS */ - - if (!respond_http(client, HTTP_STATUS_NOT_IMPLEMENTED, NULL, NULL, 0)) + else if (!respond_http(client, HTTP_STATUS_NOT_IMPLEMENTED, NULL, NULL, 0)) return (0); } @@ -6529,9 +6493,7 @@ register_printer( TXTRecordSetValue(&ipp_txt, "Duplex", 1, ippGetCount(sides_supported) > 1 ? "T" : "F"); if ((value = ippGetString(printer_uuid, 0, NULL)) != NULL) TXTRecordSetValue(&ipp_txt, "UUID", (uint8_t)strlen(value) - 9, value + 9); -# ifdef HAVE_TLS - TXTRecordSetValue(&ipp_txt, "TLS", 3, "1.2"); -# endif /* HAVE_TLS */ + TXTRecordSetValue(&ipp_txt, "TLS", 3, "1.3"); if (urf[0]) TXTRecordSetValue(&ipp_txt, "URF", (uint8_t)strlen(urf), urf); TXTRecordSetValue(&ipp_txt, "txtvers", 1, "1"); @@ -6576,7 +6538,6 @@ register_printer( return (0); } -# ifdef HAVE_TLS /* * Then register the _ipps._tcp (IPP) service type with the real port number to * advertise our IPPS printer... @@ -6597,7 +6558,6 @@ register_printer( _cupsLangPrintf(stderr, _("Unable to register \"%s.%s\": %d"), printer->dnssd_name, regtype, error); return (0); } -# endif /* HAVE_TLS */ /* * Similarly, register the _http._tcp,_printer (HTTP) service type with the @@ -6636,9 +6596,7 @@ register_printer( ipp_txt = avahi_string_list_add_printf(ipp_txt, "Duplex=%s", ippGetCount(sides_supported) > 1 ? "T" : "F"); if ((value = ippGetString(printer_uuid, 0, NULL)) != NULL) ipp_txt = avahi_string_list_add_printf(ipp_txt, "UUID=%s", value + 9); -# ifdef HAVE_TLS - ipp_txt = avahi_string_list_add_printf(ipp_txt, "TLS=1.2"); -# endif /* HAVE_TLS */ + ipp_txt = avahi_string_list_add_printf(ipp_txt, "TLS=1.3"); if (urf[0]) ipp_txt = avahi_string_list_add_printf(ipp_txt, "URF=%s", urf); ipp_txt = avahi_string_list_add_printf(ipp_txt, "txtvers=1"); @@ -6680,7 +6638,6 @@ register_printer( free(temptypes); } -#ifdef HAVE_TLS /* * _ipps._tcp (IPPS) for secure printing... */ @@ -6703,7 +6660,6 @@ register_printer( free(temptypes); } -#endif /* HAVE_TLS */ /* * Finally _http.tcp (HTTP) for the web interface... @@ -7668,9 +7624,7 @@ usage(int status) /* O - Exit status */ _cupsLangPuts(stdout, _("-A Enable authentication")); _cupsLangPuts(stdout, _("-D device-uri Set the device URI for the printer")); _cupsLangPuts(stdout, _("-F output-type/subtype Set the output format for the printer")); -#ifdef HAVE_TLS _cupsLangPuts(stdout, _("-K keypath Set location of server X.509 certificates and keys.")); -#endif /* HAVE_TLS */ _cupsLangPuts(stdout, _("-M manufacturer Set manufacturer name (default=Test)")); _cupsLangPuts(stdout, _("-S filename.strings Set strings file")); _cupsLangPuts(stdout, _("-V version Set default IPP version")); diff --git a/tools/run-tests.sh b/tools/run-tests.sh index 8070b3520..de10dbccb 100755 --- a/tools/run-tests.sh +++ b/tools/run-tests.sh @@ -18,7 +18,7 @@ ippeveprinter=$! # Test the instance... echo "Running ippfind + ipptool..." -./ippfind-static -T 5 --literal-name "$name" --exec ./ipptool-static -tIf ../examples/document-letter.pdf '{}' ../examples/ipp-2.0.test \; || status=1 +./ippfind-static -T 5 --literal-name "$name" --exec ./ipptool-static -V 2.0 -tIf ../examples/document-letter.pdf '{}' ../examples/ipp-2.0.test \; || status=1 # Clean up kill $ippeveprinter diff --git a/tools/test.conf b/tools/test.conf index 6224b07aa..3499050f3 100644 --- a/tools/test.conf +++ b/tools/test.conf @@ -132,10 +132,19 @@ ATTR keyword media-supported na_letter_8.5x11in,na_legal_8.5x14in,iso_a4_210x297 ATTR integer media-top-margin-supported 0,423 ATTR keyword media-type-supported stationery,stationery-letterhead +ATTR enum orientation-requested-default 3 +ATTR enum orientation-requested-supported 3,4,5,6,7 + +ATTR keyword output-bin-default face-down +ATTR keyword output-bin-supported face-down + ATTR keyword overrides-supported document-numbers,media,media-col,pages ATTR boolean page-ranges-supported true +ATTR integer pages-per-minute 20 +ATTR integer pages-per-minute-color 10 + ATTR keyword print-color-mode-default auto ATTR keyword print-color-mode-supported auto,color,monochrome

^Lmp!4)NgMBs>vJ%9?w<~B3nquUhO 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