diff --git a/Android.bp b/Android.bp
index 5d5b304..3f4c114 100644
--- a/Android.bp
+++ b/Android.bp
@@ -31,7 +31,6 @@
         "cups/encode.c",
         "cups/file.c",
         "cups/getdevices.c",
-        "cups/getifaddrs.c",
         "cups/getputfile.c",
         "cups/globals.c",
         "cups/hash.c",
diff --git a/CHANGES.md b/CHANGES.md
index 5959407..df72892 100644
--- a/CHANGES.md
+++ b/CHANGES.md
@@ -1,6 +1,21 @@
-CHANGES - 2.3.1 - 2019-12-13
+CHANGES - 2.3.3 - 2020-04-24
 ============================
 
+Changes in CUPS v2.3.3
+----------------------
+
+- CVE-2020-3898: The `ppdOpen` function did not handle invalid UI
+  constraint.  `ppdcSource::get_resolution` function did not handle
+  invalid resolution strings.
+- CVE-2019-8842: The `ippReadIO` function may under-read an extension
+  field.
+- Fixed WARNING_OPTIONS support for GCC 9.x
+
+Changes in CUPS v2.3.2
+----------------------
+
+- Localization updates.
+
 
 Changes in CUPS v2.3.1
 ----------------------
diff --git a/INSTALL.md b/INSTALL.md
index f880134..37cc94b 100644
--- a/INSTALL.md
+++ b/INSTALL.md
@@ -1,4 +1,4 @@
-INSTALL - CUPS v2.3.1 - 2019-12-13
+INSTALL - CUPS v2.3.3 - 2020-04-24
 ==================================
 
 This file describes how to compile and install CUPS from source code. For more
diff --git a/METADATA b/METADATA
index 9ef326e..37963ed 100644
--- a/METADATA
+++ b/METADATA
@@ -7,13 +7,13 @@
   }
   url {
     type: ARCHIVE
-    value: "https://github.com/apple/cups/releases/download/v2.3.1/cups-2.3.1-source.tar.gz"
+    value: "https://github.com/apple/cups/releases/download/v2.3.3/cups-2.3.3-source.tar.gz"
   }
-  version: "v2.3.1"
+  version: "v2.3.3"
   license_type: RESTRICTED
   last_upgrade_date {
-    year: 2019
-    month: 12
-    day: 13
+    year: 2020
+    month: 10
+    day: 28
   }
 }
diff --git a/README.md b/README.md
index 6e15a93..700213d 100644
--- a/README.md
+++ b/README.md
@@ -1,4 +1,4 @@
-README - CUPS v2.3.1 - 2019-12-13
+README - CUPS v2.3.3 - 2020-04-24
 =================================
 
 INTRODUCTION
diff --git a/README.version b/README.version
deleted file mode 100644
index 5a727df..0000000
--- a/README.version
+++ /dev/null
@@ -1,10 +0,0 @@
-URL: https://github.com/apple/cups
-Version: v2.2.9
-License: LGPL
-Description:
-CUPS is the standards-based, open source printing system developed by Apple Inc. for macOS® and other UNIX®-like operating systems. CUPS uses the Internet Printing Protocol (IPP) to support printing to local and network printers.
-
-Local Modifications:
-        Fix for CVE-2020-3898 (I1e4988e753c0ed1df43937b3009fd62ecd81ccc0)
-        Fix for CVE-2019-8842 (Ib3d4260899941f0c8050cf6d77a9022db63bdc66)
-        Use boringSSL
diff --git a/config-scripts/cups-compiler.m4 b/config-scripts/cups-compiler.m4
index 63ea1f4..86e8bc4 100644
--- a/config-scripts/cups-compiler.m4
+++ b/config-scripts/cups-compiler.m4
@@ -175,10 +175,8 @@
 	# doesn't trigger...
 	gccversion=`$CC --version | head -1 | awk '{print $NF}'`
 	case "$gccversion" in
-		1.* | 2.* | 3.* | 4.* | 5.* | 6.* | \(clang-*)
-			;;
-		*)
-			WARNING_OPTIONS="$WARNING_OPTIONS -Wno-format-truncation -Wno-format-overflow -Wno-tautological-compare"
+		7.* | 8.*)
+			WARNING_OPTIONS="$WARNING_OPTIONS -Wno-format-truncation -Wno-tautological-compare"
 			;;
 	esac
 
diff --git a/configure b/configure
index 004ecee..7a7a12f 100755
--- a/configure
+++ b/configure
@@ -1,6 +1,6 @@
 #! /bin/sh
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69 for CUPS 2.3.1.
+# Generated by GNU Autoconf 2.69 for CUPS 2.3.3.
 #
 # Report bugs to <https://github.com/apple/cups/issues>.
 #
@@ -580,8 +580,8 @@
 # Identity of this package.
 PACKAGE_NAME='CUPS'
 PACKAGE_TARNAME='cups'
-PACKAGE_VERSION='2.3.1'
-PACKAGE_STRING='CUPS 2.3.1'
+PACKAGE_VERSION='2.3.3'
+PACKAGE_STRING='CUPS 2.3.3'
 PACKAGE_BUGREPORT='https://github.com/apple/cups/issues'
 PACKAGE_URL='https://www.cups.org/'
 
@@ -1467,7 +1467,7 @@
   # Omit some internal or obsolete options to make the list less imposing.
   # This message is too long to be a string in the A/UX 3.1 sh.
   cat <<_ACEOF
-\`configure' configures CUPS 2.3.1 to adapt to many kinds of systems.
+\`configure' configures CUPS 2.3.3 to adapt to many kinds of systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -1532,7 +1532,7 @@
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of CUPS 2.3.1:";;
+     short | recursive ) echo "Configuration of CUPS 2.3.3:";;
    esac
   cat <<\_ACEOF
 
@@ -1713,7 +1713,7 @@
 test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
-CUPS configure 2.3.1
+CUPS configure 2.3.3
 generated by GNU Autoconf 2.69
 
 Copyright (C) 2012 Free Software Foundation, Inc.
@@ -2177,7 +2177,7 @@
 This file contains any messages produced by compilers while
 running configure, to aid debugging if configure makes a mistake.
 
-It was created by CUPS $as_me 2.3.1, which was
+It was created by CUPS $as_me 2.3.3, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   $ $0 $@
@@ -2694,7 +2694,7 @@
 ac_config_headers="$ac_config_headers config.h"
 
 
-CUPS_VERSION="2.3.1"
+CUPS_VERSION="2.3.3"
 CUPS_REVISION=""
 CUPS_BUILD="cups-$CUPS_VERSION"
 
@@ -6911,9 +6911,7 @@
 	# doesn't trigger...
 	gccversion=`$CC --version | head -1 | awk '{print $NF}'`
 	case "$gccversion" in
-		1.* | 2.* | 3.* | 4.* | 5.* | 6.* | \(clang-*)
-			;;
-		*)
+		7.* | 8.* | 9.*)
 			WARNING_OPTIONS="$WARNING_OPTIONS -Wno-format-truncation -Wno-format-overflow -Wno-tautological-compare"
 			;;
 	esac
@@ -10387,7 +10385,7 @@
 # report actual input values of CONFIG_FILES etc. instead of their
 # values after options handling.
 ac_log="
-This file was extended by CUPS $as_me 2.3.1, which was
+This file was extended by CUPS $as_me 2.3.3, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
@@ -10450,7 +10448,7 @@
 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
 ac_cs_version="\\
-CUPS config.status 2.3.1
+CUPS config.status 2.3.3
 configured by $0, generated by GNU Autoconf 2.69,
   with options \\"\$ac_cs_config\\"
 
diff --git a/configure.ac b/configure.ac
index 23abe87..dbf3bda 100644
--- a/configure.ac
+++ b/configure.ac
@@ -12,7 +12,7 @@
 AC_PREREQ(2.60)
 
 dnl Package name and version...
-AC_INIT([CUPS], [2.3.1], [https://github.com/apple/cups/issues], [cups], [https://www.cups.org/])
+AC_INIT([CUPS], [2.3.3], [https://github.com/apple/cups/issues], [cups], [https://www.cups.org/])
 
 sinclude(config-scripts/cups-opsys.m4)
 sinclude(config-scripts/cups-common.m4)
diff --git a/cups/cups-private.h b/cups/cups-private.h
index 126a24f..97734a5 100644
--- a/cups/cups-private.h
+++ b/cups/cups-private.h
@@ -275,7 +275,7 @@
 extern int		_cupsNextDelay(int current, int *previous) _CUPS_PRIVATE;
 extern void		_cupsSetDefaults(void) _CUPS_INTERNAL;
 extern void		_cupsSetError(ipp_status_t status, const char *message, int localize) _CUPS_PRIVATE;
-extern void		_cupsSetHTTPError(http_status_t status);
+extern void		_cupsSetHTTPError(http_status_t status) _CUPS_INTERNAL;
 #  ifdef HAVE_GSSAPI
 extern int		_cupsSetNegotiateAuthString(http_t *http, const char *method, const char *resource) _CUPS_PRIVATE;
 #  endif /* HAVE_GSSAPI */
diff --git a/cups/cups.h b/cups/cups.h
index 77a66c1..74955eb 100644
--- a/cups/cups.h
+++ b/cups/cups.h
@@ -42,10 +42,10 @@
  * Constants...
  */
 
-#  define CUPS_VERSION			2.0301
+#  define CUPS_VERSION			2.0303
 #  define CUPS_VERSION_MAJOR		2
 #  define CUPS_VERSION_MINOR		3
-#  define CUPS_VERSION_PATCH		1
+#  define CUPS_VERSION_PATCH		3
 
 #  define CUPS_BC_FD			3
 					/* Back-channel file descriptor for
diff --git a/cups/cupspm.md b/cups/cupspm.md
index d4d6d7c..b6e09ba 100644
--- a/cups/cupspm.md
+++ b/cups/cupspm.md
@@ -2,7 +2,7 @@
 title: CUPS Programming Manual
 author: Michael R Sweet
 copyright: Copyright © 2007-2019 by Apple Inc. All Rights Reserved.
-version: 2.3.1
+version: 2.3.3
 ...
 
 > Please [file issues on Github](https://github.com/apple/cups/issues) to
diff --git a/cups/getifaddrs.c b/cups/getifaddrs.c
index a04750a..f751aa8 100644
--- a/cups/getifaddrs.c
+++ b/cups/getifaddrs.c
@@ -12,7 +12,6 @@
  * Include necessary headers.
  */
 
-#include "versioning.h"
 #include "getifaddrs-internal.h"
 
 
diff --git a/cups/ipp.c.orig b/cups/ipp.c.orig
deleted file mode 100644
index fd8988f..0000000
--- a/cups/ipp.c.orig
+++ /dev/null
@@ -1,7053 +0,0 @@
-/*
- * Internet Printing Protocol functions for CUPS.
- *
- * Copyright 2007-2017 by Apple Inc.
- * Copyright 1997-2007 by Easy Software Products, all rights reserved.
- *
- * These coded instructions, statements, and computer programs are the
- * property of Apple Inc. and are protected by Federal copyright
- * law.  Distribution and use rights are outlined in the file "LICENSE.txt"
- * which should have been included with this file.  If this file is
- * missing or damaged, see the license at "http://www.cups.org/".
- *
- * This file is subject to the Apple OS-Developed Software exception.
- */
-
-/*
- * Include necessary headers...
- */
-
-#include "cups-private.h"
-#include <regex.h>
-#ifdef WIN32
-#  include <io.h>
-#endif /* WIN32 */
-
-
-/*
- * Local functions...
- */
-
-static ipp_attribute_t	*ipp_add_attr(ipp_t *ipp, const char *name,
-			              ipp_tag_t  group_tag, ipp_tag_t value_tag,
-			              int num_values);
-static void		ipp_free_values(ipp_attribute_t *attr, int element,
-			                int count);
-static char		*ipp_get_code(const char *locale, char *buffer,
-			              size_t bufsize)
-			              __attribute__((nonnull(1,2)));
-static char		*ipp_lang_code(const char *locale, char *buffer,
-			               size_t bufsize)
-			               __attribute__((nonnull(1,2)));
-static size_t		ipp_length(ipp_t *ipp, int collection);
-static ssize_t		ipp_read_http(http_t *http, ipp_uchar_t *buffer,
-			              size_t length);
-static ssize_t		ipp_read_file(int *fd, ipp_uchar_t *buffer,
-			              size_t length);
-static void		ipp_set_error(ipp_status_t status, const char *format,
-			              ...);
-static _ipp_value_t	*ipp_set_value(ipp_t *ipp, ipp_attribute_t **attr,
-			               int element);
-static ssize_t		ipp_write_file(int *fd, ipp_uchar_t *buffer,
-			               size_t length);
-
-
-/*
- * '_cupsBufferGet()' - Get a read/write buffer.
- */
-
-char *					/* O - Buffer */
-_cupsBufferGet(size_t size)		/* I - Size required */
-{
-  _cups_buffer_t	*buffer;	/* Current buffer */
-  _cups_globals_t	*cg = _cupsGlobals();
-					/* Global data */
-
-
-  for (buffer = cg->cups_buffers; buffer; buffer = buffer->next)
-    if (!buffer->used && buffer->size >= size)
-      break;
-
-  if (!buffer)
-  {
-    if ((buffer = malloc(sizeof(_cups_buffer_t) + size - 1)) == NULL)
-      return (NULL);
-
-    buffer->next     = cg->cups_buffers;
-    buffer->size     = size;
-    cg->cups_buffers = buffer;
-  }
-
-  buffer->used = 1;
-
-  return (buffer->d);
-}
-
-
-/*
- * '_cupsBufferRelease()' - Release a read/write buffer.
- */
-
-void
-_cupsBufferRelease(char *b)		/* I - Buffer to release */
-{
-  _cups_buffer_t	*buffer;	/* Buffer */
-
-
- /*
-  * Mark this buffer as unused...
-  */
-
-  buffer       = (_cups_buffer_t *)(b - offsetof(_cups_buffer_t, d));
-  buffer->used = 0;
-}
-
-
-/*
- * 'ippAddBoolean()' - Add a boolean attribute to an IPP message.
- *
- * The @code ipp@ parameter refers to an IPP message previously created using
- * the @link ippNew@, @link ippNewRequest@, or  @link ippNewResponse@ functions.
- *
- * The @code group@ parameter specifies the IPP attribute group tag: none
- * (@code IPP_TAG_ZERO@, for member attributes), document (@code IPP_TAG_DOCUMENT@),
- * event notification (@code IPP_TAG_EVENT_NOTIFICATION@), operation
- * (@code IPP_TAG_OPERATION@), printer (@code IPP_TAG_PRINTER@), subscription
- * (@code IPP_TAG_SUBSCRIPTION@), or unsupported (@code IPP_TAG_UNSUPPORTED_GROUP@).
- */
-
-ipp_attribute_t *			/* O - New attribute */
-ippAddBoolean(ipp_t      *ipp,		/* I - IPP message */
-              ipp_tag_t  group,		/* I - IPP group */
-              const char *name,		/* I - Name of attribute */
-              char       value)		/* I - Value of attribute */
-{
-  ipp_attribute_t	*attr;		/* New attribute */
-
-
-  DEBUG_printf(("ippAddBoolean(ipp=%p, group=%02x(%s), name=\"%s\", value=%d)", (void *)ipp, group, ippTagString(group), name, value));
-
- /*
-  * Range check input...
-  */
-
-  if (!ipp || !name || group < IPP_TAG_ZERO ||
-      group == IPP_TAG_END || group >= IPP_TAG_UNSUPPORTED_VALUE)
-    return (NULL);
-
- /*
-  * Create the attribute...
-  */
-
-  if ((attr = ipp_add_attr(ipp, name, group, IPP_TAG_BOOLEAN, 1)) == NULL)
-    return (NULL);
-
-  attr->values[0].boolean = value;
-
-  return (attr);
-}
-
-
-/*
- * 'ippAddBooleans()' - Add an array of boolean values.
- *
- * The @code ipp@ parameter refers to an IPP message previously created using
- * the @link ippNew@, @link ippNewRequest@, or  @link ippNewResponse@ functions.
- *
- * The @code group@ parameter specifies the IPP attribute group tag: none
- * (@code IPP_TAG_ZERO@, for member attributes), document (@code IPP_TAG_DOCUMENT@),
- * event notification (@code IPP_TAG_EVENT_NOTIFICATION@), operation
- * (@code IPP_TAG_OPERATION@), printer (@code IPP_TAG_PRINTER@), subscription
- * (@code IPP_TAG_SUBSCRIPTION@), or unsupported (@code IPP_TAG_UNSUPPORTED_GROUP@).
- */
-
-ipp_attribute_t *			/* O - New attribute */
-ippAddBooleans(ipp_t      *ipp,		/* I - IPP message */
-               ipp_tag_t  group,	/* I - IPP group */
-	       const char *name,	/* I - Name of attribute */
-	       int        num_values,	/* I - Number of values */
-	       const char *values)	/* I - Values */
-{
-  int			i;		/* Looping var */
-  ipp_attribute_t	*attr;		/* New attribute */
-  _ipp_value_t		*value;		/* Current value */
-
-
-  DEBUG_printf(("ippAddBooleans(ipp=%p, group=%02x(%s), name=\"%s\", num_values=%d, values=%p)", (void *)ipp, group, ippTagString(group), name, num_values, (void *)values));
-
- /*
-  * Range check input...
-  */
-
-  if (!ipp || !name || group < IPP_TAG_ZERO ||
-      group == IPP_TAG_END || group >= IPP_TAG_UNSUPPORTED_VALUE ||
-      num_values < 1)
-    return (NULL);
-
- /*
-  * Create the attribute...
-  */
-
-  if ((attr = ipp_add_attr(ipp, name, group, IPP_TAG_BOOLEAN, num_values)) == NULL)
-    return (NULL);
-
-  if (values)
-  {
-    for (i = num_values, value = attr->values;
-	 i > 0;
-	 i --, value ++)
-      value->boolean = *values++;
-  }
-
-  return (attr);
-}
-
-
-/*
- * 'ippAddCollection()' - Add a collection value.
- *
- * The @code ipp@ parameter refers to an IPP message previously created using
- * the @link ippNew@, @link ippNewRequest@, or  @link ippNewResponse@ functions.
- *
- * The @code group@ parameter specifies the IPP attribute group tag: none
- * (@code IPP_TAG_ZERO@, for member attributes), document (@code IPP_TAG_DOCUMENT@),
- * event notification (@code IPP_TAG_EVENT_NOTIFICATION@), operation
- * (@code IPP_TAG_OPERATION@), printer (@code IPP_TAG_PRINTER@), subscription
- * (@code IPP_TAG_SUBSCRIPTION@), or unsupported (@code IPP_TAG_UNSUPPORTED_GROUP@).
- *
- * @since CUPS 1.1.19/macOS 10.3@
- */
-
-ipp_attribute_t *			/* O - New attribute */
-ippAddCollection(ipp_t      *ipp,	/* I - IPP message */
-                 ipp_tag_t  group,	/* I - IPP group */
-		 const char *name,	/* I - Name of attribute */
-		 ipp_t      *value)	/* I - Value */
-{
-  ipp_attribute_t	*attr;		/* New attribute */
-
-
-  DEBUG_printf(("ippAddCollection(ipp=%p, group=%02x(%s), name=\"%s\", value=%p)", (void *)ipp, group, ippTagString(group), name, (void *)value));
-
- /*
-  * Range check input...
-  */
-
-  if (!ipp || !name || group < IPP_TAG_ZERO ||
-      group == IPP_TAG_END || group >= IPP_TAG_UNSUPPORTED_VALUE)
-    return (NULL);
-
- /*
-  * Create the attribute...
-  */
-
-  if ((attr = ipp_add_attr(ipp, name, group, IPP_TAG_BEGIN_COLLECTION, 1)) == NULL)
-    return (NULL);
-
-  attr->values[0].collection = value;
-
-  if (value)
-    value->use ++;
-
-  return (attr);
-}
-
-
-/*
- * 'ippAddCollections()' - Add an array of collection values.
- *
- * The @code ipp@ parameter refers to an IPP message previously created using
- * the @link ippNew@, @link ippNewRequest@, or  @link ippNewResponse@ functions.
- *
- * The @code group@ parameter specifies the IPP attribute group tag: none
- * (@code IPP_TAG_ZERO@, for member attributes), document (@code IPP_TAG_DOCUMENT@),
- * event notification (@code IPP_TAG_EVENT_NOTIFICATION@), operation
- * (@code IPP_TAG_OPERATION@), printer (@code IPP_TAG_PRINTER@), subscription
- * (@code IPP_TAG_SUBSCRIPTION@), or unsupported (@code IPP_TAG_UNSUPPORTED_GROUP@).
- *
- * @since CUPS 1.1.19/macOS 10.3@
- */
-
-ipp_attribute_t *			/* O - New attribute */
-ippAddCollections(
-    ipp_t       *ipp,			/* I - IPP message */
-    ipp_tag_t   group,			/* I - IPP group */
-    const char  *name,			/* I - Name of attribute */
-    int         num_values,		/* I - Number of values */
-    const ipp_t **values)		/* I - Values */
-{
-  int			i;		/* Looping var */
-  ipp_attribute_t	*attr;		/* New attribute */
-  _ipp_value_t		*value;		/* Current value */
-
-
-  DEBUG_printf(("ippAddCollections(ipp=%p, group=%02x(%s), name=\"%s\", num_values=%d, values=%p)", (void *)ipp, group, ippTagString(group), name, num_values, (void *)values));
-
- /*
-  * Range check input...
-  */
-
-  if (!ipp || !name || group < IPP_TAG_ZERO ||
-      group == IPP_TAG_END || group >= IPP_TAG_UNSUPPORTED_VALUE ||
-      num_values < 1)
-    return (NULL);
-
- /*
-  * Create the attribute...
-  */
-
-  if ((attr = ipp_add_attr(ipp, name, group, IPP_TAG_BEGIN_COLLECTION,
-                           num_values)) == NULL)
-    return (NULL);
-
-  if (values)
-  {
-    for (i = num_values, value = attr->values;
-	 i > 0;
-	 i --, value ++)
-    {
-      value->collection = (ipp_t *)*values++;
-      value->collection->use ++;
-    }
-  }
-
-  return (attr);
-}
-
-
-/*
- * 'ippAddDate()' - Add a dateTime attribute to an IPP message.
- *
- * The @code ipp@ parameter refers to an IPP message previously created using
- * the @link ippNew@, @link ippNewRequest@, or  @link ippNewResponse@ functions.
- *
- * The @code group@ parameter specifies the IPP attribute group tag: none
- * (@code IPP_TAG_ZERO@, for member attributes), document (@code IPP_TAG_DOCUMENT@),
- * event notification (@code IPP_TAG_EVENT_NOTIFICATION@), operation
- * (@code IPP_TAG_OPERATION@), printer (@code IPP_TAG_PRINTER@), subscription
- * (@code IPP_TAG_SUBSCRIPTION@), or unsupported (@code IPP_TAG_UNSUPPORTED_GROUP@).
- */
-
-ipp_attribute_t *			/* O - New attribute */
-ippAddDate(ipp_t             *ipp,	/* I - IPP message */
-           ipp_tag_t         group,	/* I - IPP group */
-	   const char        *name,	/* I - Name of attribute */
-	   const ipp_uchar_t *value)	/* I - Value */
-{
-  ipp_attribute_t	*attr;		/* New attribute */
-
-
-  DEBUG_printf(("ippAddDate(ipp=%p, group=%02x(%s), name=\"%s\", value=%p)", (void *)ipp, group, ippTagString(group), name, (void *)value));
-
- /*
-  * Range check input...
-  */
-
-  if (!ipp || !name || !value || group < IPP_TAG_ZERO ||
-      group == IPP_TAG_END || group >= IPP_TAG_UNSUPPORTED_VALUE)
-    return (NULL);
-
- /*
-  * Create the attribute...
-  */
-
-  if ((attr = ipp_add_attr(ipp, name, group, IPP_TAG_DATE, 1)) == NULL)
-    return (NULL);
-
-  memcpy(attr->values[0].date, value, 11);
-
-  return (attr);
-}
-
-
-/*
- * 'ippAddInteger()' - Add a integer attribute to an IPP message.
- *
- * The @code ipp@ parameter refers to an IPP message previously created using
- * the @link ippNew@, @link ippNewRequest@, or  @link ippNewResponse@ functions.
- *
- * The @code group@ parameter specifies the IPP attribute group tag: none
- * (@code IPP_TAG_ZERO@, for member attributes), document (@code IPP_TAG_DOCUMENT@),
- * event notification (@code IPP_TAG_EVENT_NOTIFICATION@), operation
- * (@code IPP_TAG_OPERATION@), printer (@code IPP_TAG_PRINTER@), subscription
- * (@code IPP_TAG_SUBSCRIPTION@), or unsupported (@code IPP_TAG_UNSUPPORTED_GROUP@).
- *
- * Supported values include enum (@code IPP_TAG_ENUM@) and integer
- * (@code IPP_TAG_INTEGER@).
- */
-
-ipp_attribute_t *			/* O - New attribute */
-ippAddInteger(ipp_t      *ipp,		/* I - IPP message */
-              ipp_tag_t  group,		/* I - IPP group */
-	      ipp_tag_t  value_tag,	/* I - Type of attribute */
-              const char *name,		/* I - Name of attribute */
-              int        value)		/* I - Value of attribute */
-{
-  ipp_attribute_t	*attr;		/* New attribute */
-
-
-  DEBUG_printf(("ippAddInteger(ipp=%p, group=%02x(%s), type=%02x(%s), name=\"%s\", value=%d)", (void *)ipp, group, ippTagString(group), value_tag, ippTagString(value_tag), name, value));
-
-  value_tag &= IPP_TAG_CUPS_MASK;
-
- /*
-  * Special-case for legacy usage: map out-of-band attributes to new ippAddOutOfBand
-  * function...
-  */
-
-  if (value_tag >= IPP_TAG_UNSUPPORTED_VALUE && value_tag <= IPP_TAG_ADMINDEFINE)
-    return (ippAddOutOfBand(ipp, group, value_tag, name));
-
- /*
-  * Range check input...
-  */
-
-#if 0
-  if (!ipp || !name || group < IPP_TAG_ZERO ||
-      group == IPP_TAG_END || group >= IPP_TAG_UNSUPPORTED_VALUE ||
-      (value_tag != IPP_TAG_INTEGER && value_tag != IPP_TAG_ENUM))
-    return (NULL);
-#else
-  if (!ipp || !name || group < IPP_TAG_ZERO ||
-      group == IPP_TAG_END || group >= IPP_TAG_UNSUPPORTED_VALUE)
-    return (NULL);
-#endif /* 0 */
-
- /*
-  * Create the attribute...
-  */
-
-  if ((attr = ipp_add_attr(ipp, name, group, value_tag, 1)) == NULL)
-    return (NULL);
-
-  attr->values[0].integer = value;
-
-  return (attr);
-}
-
-
-/*
- * 'ippAddIntegers()' - Add an array of integer values.
- *
- * The @code ipp@ parameter refers to an IPP message previously created using
- * the @link ippNew@, @link ippNewRequest@, or  @link ippNewResponse@ functions.
- *
- * The @code group@ parameter specifies the IPP attribute group tag: none
- * (@code IPP_TAG_ZERO@, for member attributes), document (@code IPP_TAG_DOCUMENT@),
- * event notification (@code IPP_TAG_EVENT_NOTIFICATION@), operation
- * (@code IPP_TAG_OPERATION@), printer (@code IPP_TAG_PRINTER@), subscription
- * (@code IPP_TAG_SUBSCRIPTION@), or unsupported (@code IPP_TAG_UNSUPPORTED_GROUP@).
- *
- * Supported values include enum (@code IPP_TAG_ENUM@) and integer
- * (@code IPP_TAG_INTEGER@).
- */
-
-ipp_attribute_t *			/* O - New attribute */
-ippAddIntegers(ipp_t      *ipp,		/* I - IPP message */
-               ipp_tag_t  group,	/* I - IPP group */
-	       ipp_tag_t  value_tag,	/* I - Type of attribute */
-	       const char *name,	/* I - Name of attribute */
-	       int        num_values,	/* I - Number of values */
-	       const int  *values)	/* I - Values */
-{
-  int			i;		/* Looping var */
-  ipp_attribute_t	*attr;		/* New attribute */
-  _ipp_value_t		*value;		/* Current value */
-
-
-  DEBUG_printf(("ippAddIntegers(ipp=%p, group=%02x(%s), type=%02x(%s), name=\"%s\", num_values=%d, values=%p)", (void *)ipp, group, ippTagString(group), value_tag, ippTagString(value_tag), name, num_values, (void *)values));
-
-  value_tag &= IPP_TAG_CUPS_MASK;
-
- /*
-  * Range check input...
-  */
-
-#if 0
-  if (!ipp || !name || group < IPP_TAG_ZERO ||
-      group == IPP_TAG_END || group >= IPP_TAG_UNSUPPORTED_VALUE ||
-      (value_tag != IPP_TAG_INTEGER && value_tag != IPP_TAG_ENUM) ||
-      num_values < 1)
-    return (NULL);
-#else
-  if (!ipp || !name || group < IPP_TAG_ZERO ||
-      group == IPP_TAG_END || group >= IPP_TAG_UNSUPPORTED_VALUE ||
-      num_values < 1)
-    return (NULL);
-#endif /* 0 */
-
- /*
-  * Create the attribute...
-  */
-
-  if ((attr = ipp_add_attr(ipp, name, group, value_tag, num_values)) == NULL)
-    return (NULL);
-
-  if (values)
-  {
-    for (i = num_values, value = attr->values;
-	 i > 0;
-	 i --, value ++)
-      value->integer = *values++;
-  }
-
-  return (attr);
-}
-
-
-/*
- * 'ippAddOctetString()' - Add an octetString value to an IPP message.
- *
- * The @code ipp@ parameter refers to an IPP message previously created using
- * the @link ippNew@, @link ippNewRequest@, or  @link ippNewResponse@ functions.
- *
- * The @code group@ parameter specifies the IPP attribute group tag: none
- * (@code IPP_TAG_ZERO@, for member attributes), document (@code IPP_TAG_DOCUMENT@),
- * event notification (@code IPP_TAG_EVENT_NOTIFICATION@), operation
- * (@code IPP_TAG_OPERATION@), printer (@code IPP_TAG_PRINTER@), subscription
- * (@code IPP_TAG_SUBSCRIPTION@), or unsupported (@code IPP_TAG_UNSUPPORTED_GROUP@).
- *
- * @since CUPS 1.2/macOS 10.5@
- */
-
-ipp_attribute_t	*			/* O - New attribute */
-ippAddOctetString(ipp_t      *ipp,	/* I - IPP message */
-                  ipp_tag_t  group,	/* I - IPP group */
-                  const char *name,	/* I - Name of attribute */
-                  const void *data,	/* I - octetString data */
-		  int        datalen)	/* I - Length of data in bytes */
-{
-  ipp_attribute_t	*attr;		/* New attribute */
-
-
-  if (!ipp || !name || group < IPP_TAG_ZERO ||
-      group == IPP_TAG_END || group >= IPP_TAG_UNSUPPORTED_VALUE ||
-      datalen < 0 || datalen > IPP_MAX_LENGTH)
-    return (NULL);
-
-  if ((attr = ipp_add_attr(ipp, name, group, IPP_TAG_STRING, 1)) == NULL)
-    return (NULL);
-
- /*
-  * Initialize the attribute data...
-  */
-
-  attr->values[0].unknown.length = datalen;
-
-  if (data)
-  {
-    if ((attr->values[0].unknown.data = malloc((size_t)datalen)) == NULL)
-    {
-      ippDeleteAttribute(ipp, attr);
-      return (NULL);
-    }
-
-    memcpy(attr->values[0].unknown.data, data, (size_t)datalen);
-  }
-
- /*
-  * Return the new attribute...
-  */
-
-  return (attr);
-}
-
-
-/*
- * 'ippAddOutOfBand()' - Add an out-of-band value to an IPP message.
- *
- * The @code ipp@ parameter refers to an IPP message previously created using
- * the @link ippNew@, @link ippNewRequest@, or  @link ippNewResponse@ functions.
- *
- * The @code group@ parameter specifies the IPP attribute group tag: none
- * (@code IPP_TAG_ZERO@, for member attributes), document (@code IPP_TAG_DOCUMENT@),
- * event notification (@code IPP_TAG_EVENT_NOTIFICATION@), operation
- * (@code IPP_TAG_OPERATION@), printer (@code IPP_TAG_PRINTER@), subscription
- * (@code IPP_TAG_SUBSCRIPTION@), or unsupported (@code IPP_TAG_UNSUPPORTED_GROUP@).
- *
- * Supported out-of-band values include unsupported-value
- * (@code IPP_TAG_UNSUPPORTED_VALUE@), default (@code IPP_TAG_DEFAULT@), unknown
- * (@code IPP_TAG_UNKNOWN@), no-value (@code IPP_TAG_NOVALUE@), not-settable
- * (@code IPP_TAG_NOTSETTABLE@), delete-attribute (@code IPP_TAG_DELETEATTR@), and
- * admin-define (@code IPP_TAG_ADMINDEFINE@).
- *
- * @since CUPS 1.6/macOS 10.8@
- */
-
-ipp_attribute_t	*			/* O - New attribute */
-ippAddOutOfBand(ipp_t      *ipp,	/* I - IPP message */
-                ipp_tag_t  group,	/* I - IPP group */
-                ipp_tag_t  value_tag,	/* I - Type of attribute */
-		const char *name)	/* I - Name of attribute */
-{
-  DEBUG_printf(("ippAddOutOfBand(ipp=%p, group=%02x(%s), value_tag=%02x(%s), name=\"%s\")", (void *)ipp, group, ippTagString(group), value_tag, ippTagString(value_tag), name));
-
-  value_tag &= IPP_TAG_CUPS_MASK;
-
- /*
-  * Range check input...
-  */
-
-  if (!ipp || !name || group < IPP_TAG_ZERO ||
-      group == IPP_TAG_END || group >= IPP_TAG_UNSUPPORTED_VALUE ||
-      (value_tag != IPP_TAG_UNSUPPORTED_VALUE &&
-       value_tag != IPP_TAG_DEFAULT &&
-       value_tag != IPP_TAG_UNKNOWN &&
-       value_tag != IPP_TAG_NOVALUE &&
-       value_tag != IPP_TAG_NOTSETTABLE &&
-       value_tag != IPP_TAG_DELETEATTR &&
-       value_tag != IPP_TAG_ADMINDEFINE))
-    return (NULL);
-
- /*
-  * Create the attribute...
-  */
-
-  return (ipp_add_attr(ipp, name, group, value_tag, 1));
-}
-
-
-/*
- * 'ippAddRange()' - Add a range of values to an IPP message.
- *
- * The @code ipp@ parameter refers to an IPP message previously created using
- * the @link ippNew@, @link ippNewRequest@, or  @link ippNewResponse@ functions.
- *
- * The @code group@ parameter specifies the IPP attribute group tag: none
- * (@code IPP_TAG_ZERO@, for member attributes), document (@code IPP_TAG_DOCUMENT@),
- * event notification (@code IPP_TAG_EVENT_NOTIFICATION@), operation
- * (@code IPP_TAG_OPERATION@), printer (@code IPP_TAG_PRINTER@), subscription
- * (@code IPP_TAG_SUBSCRIPTION@), or unsupported (@code IPP_TAG_UNSUPPORTED_GROUP@).
- *
- * The @code lower@ parameter must be less than or equal to the @code upper@ parameter.
- */
-
-ipp_attribute_t *			/* O - New attribute */
-ippAddRange(ipp_t      *ipp,		/* I - IPP message */
-            ipp_tag_t  group,		/* I - IPP group */
-	    const char *name,		/* I - Name of attribute */
-	    int        lower,		/* I - Lower value */
-	    int        upper)		/* I - Upper value */
-{
-  ipp_attribute_t	*attr;		/* New attribute */
-
-
-  DEBUG_printf(("ippAddRange(ipp=%p, group=%02x(%s), name=\"%s\", lower=%d, upper=%d)", (void *)ipp, group, ippTagString(group), name, lower, upper));
-
- /*
-  * Range check input...
-  */
-
-  if (!ipp || !name || group < IPP_TAG_ZERO ||
-      group == IPP_TAG_END || group >= IPP_TAG_UNSUPPORTED_VALUE)
-    return (NULL);
-
- /*
-  * Create the attribute...
-  */
-
-  if ((attr = ipp_add_attr(ipp, name, group, IPP_TAG_RANGE, 1)) == NULL)
-    return (NULL);
-
-  attr->values[0].range.lower = lower;
-  attr->values[0].range.upper = upper;
-
-  return (attr);
-}
-
-
-/*
- * 'ippAddRanges()' - Add ranges of values to an IPP message.
- *
- * The @code ipp@ parameter refers to an IPP message previously created using
- * the @link ippNew@, @link ippNewRequest@, or  @link ippNewResponse@ functions.
- *
- * The @code group@ parameter specifies the IPP attribute group tag: none
- * (@code IPP_TAG_ZERO@, for member attributes), document (@code IPP_TAG_DOCUMENT@),
- * event notification (@code IPP_TAG_EVENT_NOTIFICATION@), operation
- * (@code IPP_TAG_OPERATION@), printer (@code IPP_TAG_PRINTER@), subscription
- * (@code IPP_TAG_SUBSCRIPTION@), or unsupported (@code IPP_TAG_UNSUPPORTED_GROUP@).
- */
-
-ipp_attribute_t *			/* O - New attribute */
-ippAddRanges(ipp_t      *ipp,		/* I - IPP message */
-             ipp_tag_t  group,		/* I - IPP group */
-	     const char *name,		/* I - Name of attribute */
-	     int        num_values,	/* I - Number of values */
-	     const int  *lower,		/* I - Lower values */
-	     const int  *upper)		/* I - Upper values */
-{
-  int			i;		/* Looping var */
-  ipp_attribute_t	*attr;		/* New attribute */
-  _ipp_value_t		*value;		/* Current value */
-
-
-  DEBUG_printf(("ippAddRanges(ipp=%p, group=%02x(%s), name=\"%s\", num_values=%d, lower=%p, upper=%p)", (void *)ipp, group, ippTagString(group), name, num_values, (void *)lower, (void *)upper));
-
- /*
-  * Range check input...
-  */
-
-  if (!ipp || !name || group < IPP_TAG_ZERO ||
-      group == IPP_TAG_END || group >= IPP_TAG_UNSUPPORTED_VALUE ||
-      num_values < 1)
-    return (NULL);
-
- /*
-  * Create the attribute...
-  */
-
-  if ((attr = ipp_add_attr(ipp, name, group, IPP_TAG_RANGE, num_values)) == NULL)
-    return (NULL);
-
-  if (lower && upper)
-  {
-    for (i = num_values, value = attr->values;
-	 i > 0;
-	 i --, value ++)
-    {
-      value->range.lower = *lower++;
-      value->range.upper = *upper++;
-    }
-  }
-
-  return (attr);
-}
-
-
-/*
- * 'ippAddResolution()' - Add a resolution value to an IPP message.
- *
- * The @code ipp@ parameter refers to an IPP message previously created using
- * the @link ippNew@, @link ippNewRequest@, or  @link ippNewResponse@ functions.
- *
- * The @code group@ parameter specifies the IPP attribute group tag: none
- * (@code IPP_TAG_ZERO@, for member attributes), document (@code IPP_TAG_DOCUMENT@),
- * event notification (@code IPP_TAG_EVENT_NOTIFICATION@), operation
- * (@code IPP_TAG_OPERATION@), printer (@code IPP_TAG_PRINTER@), subscription
- * (@code IPP_TAG_SUBSCRIPTION@), or unsupported (@code IPP_TAG_UNSUPPORTED_GROUP@).
- */
-
-ipp_attribute_t *			/* O - New attribute */
-ippAddResolution(ipp_t      *ipp,	/* I - IPP message */
-        	 ipp_tag_t  group,	/* I - IPP group */
-		 const char *name,	/* I - Name of attribute */
-		 ipp_res_t  units,	/* I - Units for resolution */
-		 int        xres,	/* I - X resolution */
-		 int        yres)	/* I - Y resolution */
-{
-  ipp_attribute_t	*attr;		/* New attribute */
-
-
-  DEBUG_printf(("ippAddResolution(ipp=%p, group=%02x(%s), name=\"%s\", units=%d, xres=%d, yres=%d)", (void *)ipp, group,
-		ippTagString(group), name, units, xres, yres));
-
- /*
-  * Range check input...
-  */
-
-  if (!ipp || !name || group < IPP_TAG_ZERO ||
-      group == IPP_TAG_END || group >= IPP_TAG_UNSUPPORTED_VALUE ||
-      units < IPP_RES_PER_INCH || units > IPP_RES_PER_CM ||
-      xres < 0 || yres < 0)
-    return (NULL);
-
- /*
-  * Create the attribute...
-  */
-
-  if ((attr = ipp_add_attr(ipp, name, group, IPP_TAG_RESOLUTION, 1)) == NULL)
-    return (NULL);
-
-  attr->values[0].resolution.xres  = xres;
-  attr->values[0].resolution.yres  = yres;
-  attr->values[0].resolution.units = units;
-
-  return (attr);
-}
-
-
-/*
- * 'ippAddResolutions()' - Add resolution values to an IPP message.
- *
- * The @code ipp@ parameter refers to an IPP message previously created using
- * the @link ippNew@, @link ippNewRequest@, or  @link ippNewResponse@ functions.
- *
- * The @code group@ parameter specifies the IPP attribute group tag: none
- * (@code IPP_TAG_ZERO@, for member attributes), document (@code IPP_TAG_DOCUMENT@),
- * event notification (@code IPP_TAG_EVENT_NOTIFICATION@), operation
- * (@code IPP_TAG_OPERATION@), printer (@code IPP_TAG_PRINTER@), subscription
- * (@code IPP_TAG_SUBSCRIPTION@), or unsupported (@code IPP_TAG_UNSUPPORTED_GROUP@).
- */
-
-ipp_attribute_t *			/* O - New attribute */
-ippAddResolutions(ipp_t      *ipp,	/* I - IPP message */
-        	  ipp_tag_t  group,	/* I - IPP group */
-		  const char *name,	/* I - Name of attribute */
-		  int        num_values,/* I - Number of values */
-		  ipp_res_t  units,	/* I - Units for resolution */
-		  const int  *xres,	/* I - X resolutions */
-		  const int  *yres)	/* I - Y resolutions */
-{
-  int			i;		/* Looping var */
-  ipp_attribute_t	*attr;		/* New attribute */
-  _ipp_value_t		*value;		/* Current value */
-
-
-  DEBUG_printf(("ippAddResolutions(ipp=%p, group=%02x(%s), name=\"%s\", num_value=%d, units=%d, xres=%p, yres=%p)", (void *)ipp, group, ippTagString(group), name, num_values, units, (void *)xres, (void *)yres));
-
- /*
-  * Range check input...
-  */
-
-  if (!ipp || !name || group < IPP_TAG_ZERO ||
-      group == IPP_TAG_END || group >= IPP_TAG_UNSUPPORTED_VALUE ||
-      num_values < 1 ||
-      units < IPP_RES_PER_INCH || units > IPP_RES_PER_CM)
-    return (NULL);
-
- /*
-  * Create the attribute...
-  */
-
-  if ((attr = ipp_add_attr(ipp, name, group, IPP_TAG_RESOLUTION, num_values)) == NULL)
-    return (NULL);
-
-  if (xres && yres)
-  {
-    for (i = num_values, value = attr->values;
-	 i > 0;
-	 i --, value ++)
-    {
-      value->resolution.xres  = *xres++;
-      value->resolution.yres  = *yres++;
-      value->resolution.units = units;
-    }
-  }
-
-  return (attr);
-}
-
-
-/*
- * 'ippAddSeparator()' - Add a group separator to an IPP message.
- *
- * The @code ipp@ parameter refers to an IPP message previously created using
- * the @link ippNew@, @link ippNewRequest@, or  @link ippNewResponse@ functions.
- */
-
-ipp_attribute_t *			/* O - New attribute */
-ippAddSeparator(ipp_t *ipp)		/* I - IPP message */
-{
-  DEBUG_printf(("ippAddSeparator(ipp=%p)", (void *)ipp));
-
- /*
-  * Range check input...
-  */
-
-  if (!ipp)
-    return (NULL);
-
- /*
-  * Create the attribute...
-  */
-
-  return (ipp_add_attr(ipp, NULL, IPP_TAG_ZERO, IPP_TAG_ZERO, 0));
-}
-
-
-/*
- * 'ippAddString()' - Add a language-encoded string to an IPP message.
- *
- * The @code ipp@ parameter refers to an IPP message previously created using
- * the @link ippNew@, @link ippNewRequest@, or  @link ippNewResponse@ functions.
- *
- * The @code group@ parameter specifies the IPP attribute group tag: none
- * (@code IPP_TAG_ZERO@, for member attributes), document (@code IPP_TAG_DOCUMENT@),
- * event notification (@code IPP_TAG_EVENT_NOTIFICATION@), operation
- * (@code IPP_TAG_OPERATION@), printer (@code IPP_TAG_PRINTER@), subscription
- * (@code IPP_TAG_SUBSCRIPTION@), or unsupported (@code IPP_TAG_UNSUPPORTED_GROUP@).
- *
- * Supported string values include charset (@code IPP_TAG_CHARSET@), keyword
- * (@code IPP_TAG_KEYWORD@), language (@code IPP_TAG_LANGUAGE@), mimeMediaType
- * (@code IPP_TAG_MIMETYPE@), name (@code IPP_TAG_NAME@), nameWithLanguage
- * (@code IPP_TAG_NAMELANG), text (@code IPP_TAG_TEXT@), textWithLanguage
- * (@code IPP_TAG_TEXTLANG@), uri (@code IPP_TAG_URI@), and uriScheme
- * (@code IPP_TAG_URISCHEME@).
- *
- * The @code language@ parameter must be non-@code NULL@ for nameWithLanguage and
- * textWithLanguage string values and must be @code NULL@ for all other string values.
- */
-
-ipp_attribute_t *			/* O - New attribute */
-ippAddString(ipp_t      *ipp,		/* I - IPP message */
-             ipp_tag_t  group,		/* I - IPP group */
-	     ipp_tag_t  value_tag,	/* I - Type of attribute */
-             const char *name,		/* I - Name of attribute */
-             const char *language,	/* I - Language code */
-             const char *value)		/* I - Value */
-{
-  ipp_tag_t		temp_tag;	/* Temporary value tag (masked) */
-  ipp_attribute_t	*attr;		/* New attribute */
-  char			code[IPP_MAX_LANGUAGE];
-					/* Charset/language code buffer */
-
-
-  DEBUG_printf(("ippAddString(ipp=%p, group=%02x(%s), value_tag=%02x(%s), name=\"%s\", language=\"%s\", value=\"%s\")", (void *)ipp, group, ippTagString(group), value_tag, ippTagString(value_tag), name, language, value));
-
- /*
-  * Range check input...
-  */
-
-  temp_tag = (ipp_tag_t)((int)value_tag & IPP_TAG_CUPS_MASK);
-
-#if 0
-  if (!ipp || !name || group < IPP_TAG_ZERO ||
-      group == IPP_TAG_END || group >= IPP_TAG_UNSUPPORTED_VALUE ||
-      (temp_tag < IPP_TAG_TEXT && temp_tag != IPP_TAG_TEXTLANG &&
-       temp_tag != IPP_TAG_NAMELANG) || temp_tag > IPP_TAG_MIMETYPE)
-    return (NULL);
-
-  if ((temp_tag == IPP_TAG_TEXTLANG || temp_tag == IPP_TAG_NAMELANG)
-          != (language != NULL))
-    return (NULL);
-#else
-  if (!ipp || !name || group < IPP_TAG_ZERO ||
-      group == IPP_TAG_END || group >= IPP_TAG_UNSUPPORTED_VALUE)
-    return (NULL);
-#endif /* 0 */
-
- /*
-  * See if we need to map charset, language, or locale values...
-  */
-
-  if (language && ((int)value_tag & IPP_TAG_CUPS_CONST) &&
-      strcmp(language, ipp_lang_code(language, code, sizeof(code))))
-    value_tag = temp_tag;		/* Don't do a fast copy */
-  else if (value && value_tag == (ipp_tag_t)(IPP_TAG_CHARSET | IPP_TAG_CUPS_CONST) &&
-           strcmp(value, ipp_get_code(value, code, sizeof(code))))
-    value_tag = temp_tag;		/* Don't do a fast copy */
-  else if (value && value_tag == (ipp_tag_t)(IPP_TAG_LANGUAGE | IPP_TAG_CUPS_CONST) &&
-           strcmp(value, ipp_lang_code(value, code, sizeof(code))))
-    value_tag = temp_tag;		/* Don't do a fast copy */
-
- /*
-  * Create the attribute...
-  */
-
-  if ((attr = ipp_add_attr(ipp, name, group, value_tag, 1)) == NULL)
-    return (NULL);
-
- /*
-  * Initialize the attribute data...
-  */
-
-  if ((int)value_tag & IPP_TAG_CUPS_CONST)
-  {
-    attr->values[0].string.language = (char *)language;
-    attr->values[0].string.text     = (char *)value;
-  }
-  else
-  {
-    if (language)
-      attr->values[0].string.language = _cupsStrAlloc(ipp_lang_code(language, code,
-						      sizeof(code)));
-
-    if (value)
-    {
-      if (value_tag == IPP_TAG_CHARSET)
-	attr->values[0].string.text = _cupsStrAlloc(ipp_get_code(value, code,
-								 sizeof(code)));
-      else if (value_tag == IPP_TAG_LANGUAGE)
-	attr->values[0].string.text = _cupsStrAlloc(ipp_lang_code(value, code,
-								  sizeof(code)));
-      else
-	attr->values[0].string.text = _cupsStrAlloc(value);
-    }
-  }
-
-  return (attr);
-}
-
-
-/*
- * 'ippAddStringf()' - Add a formatted string to an IPP message.
- *
- * The @code ipp@ parameter refers to an IPP message previously created using
- * the @link ippNew@, @link ippNewRequest@, or  @link ippNewResponse@ functions.
- *
- * The @code group@ parameter specifies the IPP attribute group tag: none
- * (@code IPP_TAG_ZERO@, for member attributes), document
- * (@code IPP_TAG_DOCUMENT@), event notification
- * (@code IPP_TAG_EVENT_NOTIFICATION@), operation (@code IPP_TAG_OPERATION@),
- * printer (@code IPP_TAG_PRINTER@), subscription (@code IPP_TAG_SUBSCRIPTION@),
- * or unsupported (@code IPP_TAG_UNSUPPORTED_GROUP@).
- *
- * Supported string values include charset (@code IPP_TAG_CHARSET@), keyword
- * (@code IPP_TAG_KEYWORD@), language (@code IPP_TAG_LANGUAGE@), mimeMediaType
- * (@code IPP_TAG_MIMETYPE@), name (@code IPP_TAG_NAME@), nameWithLanguage
- * (@code IPP_TAG_NAMELANG), text (@code IPP_TAG_TEXT@), textWithLanguage
- * (@code IPP_TAG_TEXTLANG@), uri (@code IPP_TAG_URI@), and uriScheme
- * (@code IPP_TAG_URISCHEME@).
- *
- * The @code language@ parameter must be non-@code NULL@ for nameWithLanguage
- * and textWithLanguage string values and must be @code NULL@ for all other
- * string values.
- *
- * The @code format@ parameter uses formatting characters compatible with the
- * printf family of standard functions.  Additional arguments follow it as
- * needed.  The formatted string is truncated as needed to the maximum length of
- * the corresponding value type.
- *
- * @since CUPS 1.7/macOS 10.9@
- */
-
-ipp_attribute_t *			/* O - New attribute */
-ippAddStringf(ipp_t      *ipp,		/* I - IPP message */
-              ipp_tag_t  group,		/* I - IPP group */
-	      ipp_tag_t  value_tag,	/* I - Type of attribute */
-	      const char *name,		/* I - Name of attribute */
-	      const char *language,	/* I - Language code (@code NULL@ for default) */
-	      const char *format,	/* I - Printf-style format string */
-	      ...)			/* I - Additional arguments as needed */
-{
-  ipp_attribute_t	*attr;		/* New attribute */
-  va_list		ap;		/* Argument pointer */
-
-
-  va_start(ap, format);
-  attr = ippAddStringfv(ipp, group, value_tag, name, language, format, ap);
-  va_end(ap);
-
-  return (attr);
-}
-
-
-/*
- * 'ippAddStringfv()' - Add a formatted string to an IPP message.
- *
- * The @code ipp@ parameter refers to an IPP message previously created using
- * the @link ippNew@, @link ippNewRequest@, or  @link ippNewResponse@ functions.
- *
- * The @code group@ parameter specifies the IPP attribute group tag: none
- * (@code IPP_TAG_ZERO@, for member attributes), document
- * (@code IPP_TAG_DOCUMENT@), event notification
- * (@code IPP_TAG_EVENT_NOTIFICATION@), operation (@code IPP_TAG_OPERATION@),
- * printer (@code IPP_TAG_PRINTER@), subscription (@code IPP_TAG_SUBSCRIPTION@),
- * or unsupported (@code IPP_TAG_UNSUPPORTED_GROUP@).
- *
- * Supported string values include charset (@code IPP_TAG_CHARSET@), keyword
- * (@code IPP_TAG_KEYWORD@), language (@code IPP_TAG_LANGUAGE@), mimeMediaType
- * (@code IPP_TAG_MIMETYPE@), name (@code IPP_TAG_NAME@), nameWithLanguage
- * (@code IPP_TAG_NAMELANG), text (@code IPP_TAG_TEXT@), textWithLanguage
- * (@code IPP_TAG_TEXTLANG@), uri (@code IPP_TAG_URI@), and uriScheme
- * (@code IPP_TAG_URISCHEME@).
- *
- * The @code language@ parameter must be non-@code NULL@ for nameWithLanguage
- * and textWithLanguage string values and must be @code NULL@ for all other
- * string values.
- *
- * The @code format@ parameter uses formatting characters compatible with the
- * printf family of standard functions.  Additional arguments are passed in the
- * stdarg pointer @code ap@.  The formatted string is truncated as needed to the
- * maximum length of the corresponding value type.
- *
- * @since CUPS 1.7/macOS 10.9@
- */
-
-ipp_attribute_t *			/* O - New attribute */
-ippAddStringfv(ipp_t      *ipp,		/* I - IPP message */
-               ipp_tag_t  group,	/* I - IPP group */
-	       ipp_tag_t  value_tag,	/* I - Type of attribute */
-	       const char *name,	/* I - Name of attribute */
-	       const char *language,	/* I - Language code (@code NULL@ for default) */
-	       const char *format,	/* I - Printf-style format string */
-	       va_list    ap)		/* I - Additional arguments */
-{
-  char		buffer[IPP_MAX_TEXT + 4];
-					/* Formatted text string */
-  ssize_t	bytes,			/* Length of formatted value */
-		max_bytes;		/* Maximum number of bytes for value */
-
-
- /*
-  * Range check input...
-  */
-
-  if (!ipp || !name || group < IPP_TAG_ZERO ||
-      group == IPP_TAG_END || group >= IPP_TAG_UNSUPPORTED_VALUE ||
-      (value_tag < IPP_TAG_TEXT && value_tag != IPP_TAG_TEXTLANG &&
-       value_tag != IPP_TAG_NAMELANG) || value_tag > IPP_TAG_MIMETYPE ||
-      !format)
-    return (NULL);
-
-  if ((value_tag == IPP_TAG_TEXTLANG || value_tag == IPP_TAG_NAMELANG)
-          != (language != NULL))
-    return (NULL);
-
- /*
-  * Format the string...
-  */
-
-  if (!strcmp(format, "%s"))
-  {
-   /*
-    * Optimize the simple case...
-    */
-
-    const char *s = va_arg(ap, char *);
-
-    if (!s)
-      s = "(null)";
-
-    bytes = (ssize_t)strlen(s);
-    strlcpy(buffer, s, sizeof(buffer));
-  }
-  else
-  {
-   /*
-    * Do a full formatting of the message...
-    */
-
-    if ((bytes = vsnprintf(buffer, sizeof(buffer), format, ap)) < 0)
-      return (NULL);
-  }
-
- /*
-  * Limit the length of the string...
-  */
-
-  switch (value_tag)
-  {
-    default :
-    case IPP_TAG_TEXT :
-    case IPP_TAG_TEXTLANG :
-        max_bytes = IPP_MAX_TEXT;
-        break;
-
-    case IPP_TAG_NAME :
-    case IPP_TAG_NAMELANG :
-        max_bytes = IPP_MAX_NAME;
-        break;
-
-    case IPP_TAG_CHARSET :
-        max_bytes = IPP_MAX_CHARSET;
-        break;
-
-    case IPP_TAG_KEYWORD :
-        max_bytes = IPP_MAX_KEYWORD;
-        break;
-
-    case IPP_TAG_LANGUAGE :
-        max_bytes = IPP_MAX_LANGUAGE;
-        break;
-
-    case IPP_TAG_MIMETYPE :
-        max_bytes = IPP_MAX_MIMETYPE;
-        break;
-
-    case IPP_TAG_URI :
-        max_bytes = IPP_MAX_URI;
-        break;
-
-    case IPP_TAG_URISCHEME :
-        max_bytes = IPP_MAX_URISCHEME;
-        break;
-  }
-
-  if (bytes >= max_bytes)
-  {
-    char	*bufmax,		/* Buffer at max_bytes */
-		*bufptr;		/* Pointer into buffer */
-
-    bufptr = buffer + strlen(buffer) - 1;
-    bufmax = buffer + max_bytes - 1;
-
-    while (bufptr > bufmax)
-    {
-      if (*bufptr & 0x80)
-      {
-        while ((*bufptr & 0xc0) == 0x80 && bufptr > buffer)
-          bufptr --;
-      }
-
-      bufptr --;
-    }
-
-    *bufptr = '\0';
-  }
-
- /*
-  * Add the formatted string and return...
-  */
-
-  return (ippAddString(ipp, group, value_tag, name, language, buffer));
-}
-
-
-/*
- * 'ippAddStrings()' - Add language-encoded strings to an IPP message.
- *
- * The @code ipp@ parameter refers to an IPP message previously created using
- * the @link ippNew@, @link ippNewRequest@, or  @link ippNewResponse@ functions.
- *
- * The @code group@ parameter specifies the IPP attribute group tag: none
- * (@code IPP_TAG_ZERO@, for member attributes), document (@code IPP_TAG_DOCUMENT@),
- * event notification (@code IPP_TAG_EVENT_NOTIFICATION@), operation
- * (@code IPP_TAG_OPERATION@), printer (@code IPP_TAG_PRINTER@), subscription
- * (@code IPP_TAG_SUBSCRIPTION@), or unsupported (@code IPP_TAG_UNSUPPORTED_GROUP@).
- *
- * Supported string values include charset (@code IPP_TAG_CHARSET@), keyword
- * (@code IPP_TAG_KEYWORD@), language (@code IPP_TAG_LANGUAGE@), mimeMediaType
- * (@code IPP_TAG_MIMETYPE@), name (@code IPP_TAG_NAME@), nameWithLanguage
- * (@code IPP_TAG_NAMELANG), text (@code IPP_TAG_TEXT@), textWithLanguage
- * (@code IPP_TAG_TEXTLANG@), uri (@code IPP_TAG_URI@), and uriScheme
- * (@code IPP_TAG_URISCHEME@).
- *
- * The @code language@ parameter must be non-@code NULL@ for nameWithLanguage and
- * textWithLanguage string values and must be @code NULL@ for all other string values.
- */
-
-ipp_attribute_t *			/* O - New attribute */
-ippAddStrings(
-    ipp_t              *ipp,		/* I - IPP message */
-    ipp_tag_t          group,		/* I - IPP group */
-    ipp_tag_t          value_tag,	/* I - Type of attribute */
-    const char         *name,		/* I - Name of attribute */
-    int                num_values,	/* I - Number of values */
-    const char         *language,	/* I - Language code (@code NULL@ for default) */
-    const char * const *values)		/* I - Values */
-{
-  int			i;		/* Looping var */
-  ipp_tag_t		temp_tag;	/* Temporary value tag (masked) */
-  ipp_attribute_t	*attr;		/* New attribute */
-  _ipp_value_t		*value;		/* Current value */
-  char			code[32];	/* Language/charset value buffer */
-
-
-  DEBUG_printf(("ippAddStrings(ipp=%p, group=%02x(%s), value_tag=%02x(%s), name=\"%s\", num_values=%d, language=\"%s\", values=%p)", (void *)ipp, group, ippTagString(group), value_tag, ippTagString(value_tag), name, num_values, language, (void *)values));
-
- /*
-  * Range check input...
-  */
-
-  temp_tag = (ipp_tag_t)((int)value_tag & IPP_TAG_CUPS_MASK);
-
-#if 0
-  if (!ipp || !name || group < IPP_TAG_ZERO ||
-      group == IPP_TAG_END || group >= IPP_TAG_UNSUPPORTED_VALUE ||
-      (temp_tag < IPP_TAG_TEXT && temp_tag != IPP_TAG_TEXTLANG &&
-       temp_tag != IPP_TAG_NAMELANG) || temp_tag > IPP_TAG_MIMETYPE ||
-      num_values < 1)
-    return (NULL);
-
-  if ((temp_tag == IPP_TAG_TEXTLANG || temp_tag == IPP_TAG_NAMELANG)
-          != (language != NULL))
-    return (NULL);
-#else
-  if (!ipp || !name || group < IPP_TAG_ZERO ||
-      group == IPP_TAG_END || group >= IPP_TAG_UNSUPPORTED_VALUE ||
-      num_values < 1)
-    return (NULL);
-#endif /* 0 */
-
- /*
-  * See if we need to map charset, language, or locale values...
-  */
-
-  if (language && ((int)value_tag & IPP_TAG_CUPS_CONST) &&
-      strcmp(language, ipp_lang_code(language, code, sizeof(code))))
-    value_tag = temp_tag;		/* Don't do a fast copy */
-  else if (values && value_tag == (ipp_tag_t)(IPP_TAG_CHARSET | IPP_TAG_CUPS_CONST))
-  {
-    for (i = 0; i < num_values; i ++)
-      if (strcmp(values[i], ipp_get_code(values[i], code, sizeof(code))))
-      {
-	value_tag = temp_tag;		/* Don't do a fast copy */
-        break;
-      }
-  }
-  else if (values && value_tag == (ipp_tag_t)(IPP_TAG_LANGUAGE | IPP_TAG_CUPS_CONST))
-  {
-    for (i = 0; i < num_values; i ++)
-      if (strcmp(values[i], ipp_lang_code(values[i], code, sizeof(code))))
-      {
-	value_tag = temp_tag;		/* Don't do a fast copy */
-        break;
-      }
-  }
-
- /*
-  * Create the attribute...
-  */
-
-  if ((attr = ipp_add_attr(ipp, name, group, value_tag, num_values)) == NULL)
-    return (NULL);
-
- /*
-  * Initialize the attribute data...
-  */
-
-  for (i = num_values, value = attr->values;
-       i > 0;
-       i --, value ++)
-  {
-    if (language)
-    {
-      if (value == attr->values)
-      {
-        if ((int)value_tag & IPP_TAG_CUPS_CONST)
-          value->string.language = (char *)language;
-        else
-          value->string.language = _cupsStrAlloc(ipp_lang_code(language, code,
-                                                               sizeof(code)));
-      }
-      else
-	value->string.language = attr->values[0].string.language;
-    }
-
-    if (values)
-    {
-      if ((int)value_tag & IPP_TAG_CUPS_CONST)
-        value->string.text = (char *)*values++;
-      else if (value_tag == IPP_TAG_CHARSET)
-	value->string.text = _cupsStrAlloc(ipp_get_code(*values++, code, sizeof(code)));
-      else if (value_tag == IPP_TAG_LANGUAGE)
-	value->string.text = _cupsStrAlloc(ipp_lang_code(*values++, code, sizeof(code)));
-      else
-	value->string.text = _cupsStrAlloc(*values++);
-    }
-  }
-
-  return (attr);
-}
-
-
-/*
- * 'ippContainsInteger()' - Determine whether an attribute contains the
- *                          specified value or is within the list of ranges.
- *
- * Returns non-zero when the attribute contains either a matching integer or
- * enum value, or the value falls within one of the rangeOfInteger values for
- * the attribute.
- *
- * @since CUPS 1.7/macOS 10.9@
- */
-
-int					/* O - 1 on a match, 0 on no match */
-ippContainsInteger(
-    ipp_attribute_t *attr,		/* I - Attribute */
-    int             value)		/* I - Integer/enum value */
-{
-  int		i;			/* Looping var */
-  _ipp_value_t	*avalue;		/* Current attribute value */
-
-
- /*
-  * Range check input...
-  */
-
-  if (!attr)
-    return (0);
-
-  if (attr->value_tag != IPP_TAG_INTEGER && attr->value_tag != IPP_TAG_ENUM &&
-      attr->value_tag != IPP_TAG_RANGE)
-    return (0);
-
- /*
-  * Compare...
-  */
-
-  if (attr->value_tag == IPP_TAG_RANGE)
-  {
-    for (i = attr->num_values, avalue = attr->values; i > 0; i --, avalue ++)
-      if (value >= avalue->range.lower && value <= avalue->range.upper)
-        return (1);
-  }
-  else
-  {
-    for (i = attr->num_values, avalue = attr->values; i > 0; i --, avalue ++)
-      if (value == avalue->integer)
-        return (1);
-  }
-
-  return (0);
-}
-
-
-/*
- * 'ippContainsString()' - Determine whether an attribute contains the
- *                         specified string value.
- *
- * Returns non-zero when the attribute contains a matching charset, keyword,
- * naturalLanguage, mimeMediaType, name, text, uri, or uriScheme value.
- *
- * @since CUPS 1.7/macOS 10.9@
- */
-
-int					/* O - 1 on a match, 0 on no match */
-ippContainsString(
-    ipp_attribute_t *attr,		/* I - Attribute */
-    const char      *value)		/* I - String value */
-{
-  int		i;			/* Looping var */
-  _ipp_value_t	*avalue;		/* Current attribute value */
-
-
-  DEBUG_printf(("ippContainsString(attr=%p, value=\"%s\")", (void *)attr, value));
-
- /*
-  * Range check input...
-  */
-
-  if (!attr || !value)
-  {
-    DEBUG_puts("1ippContainsString: Returning 0 (bad input)");
-    return (0);
-  }
-
- /*
-  * Compare...
-  */
-
-  DEBUG_printf(("1ippContainsString: attr %s, %s with %d values.",
-		attr->name, ippTagString(attr->value_tag),
-		attr->num_values));
-
-  switch (attr->value_tag & IPP_TAG_CUPS_MASK)
-  {
-    case IPP_TAG_CHARSET :
-    case IPP_TAG_KEYWORD :
-    case IPP_TAG_LANGUAGE :
-    case IPP_TAG_URI :
-    case IPP_TAG_URISCHEME :
-	for (i = attr->num_values, avalue = attr->values;
-	     i > 0;
-	     i --, avalue ++)
-	{
-	  DEBUG_printf(("1ippContainsString: value[%d]=\"%s\"",
-	                attr->num_values - i, avalue->string.text));
-
-	  if (!strcmp(value, avalue->string.text))
-	  {
-	    DEBUG_puts("1ippContainsString: Returning 1 (match)");
-	    return (1);
-	  }
-        }
-
-    case IPP_TAG_MIMETYPE :
-    case IPP_TAG_NAME :
-    case IPP_TAG_NAMELANG :
-    case IPP_TAG_TEXT :
-    case IPP_TAG_TEXTLANG :
-	for (i = attr->num_values, avalue = attr->values;
-	     i > 0;
-	     i --, avalue ++)
-	{
-	  DEBUG_printf(("1ippContainsString: value[%d]=\"%s\"",
-	                attr->num_values - i, avalue->string.text));
-
-	  if (!_cups_strcasecmp(value, avalue->string.text))
-	  {
-	    DEBUG_puts("1ippContainsString: Returning 1 (match)");
-	    return (1);
-	  }
-        }
-
-    default :
-        break;
-  }
-
-  DEBUG_puts("1ippContainsString: Returning 0 (no match)");
-
-  return (0);
-}
-
-
-/*
- * 'ippCopyAttribute()' - Copy an attribute.
- *
- * The specified attribute, @code attr@, is copied to the destination IPP message.
- * When @code quickcopy@ is non-zero, a "shallow" reference copy of the attribute is
- * created - this should only be done as long as the original source IPP message will
- * not be freed for the life of the destination.
- *
- * @since CUPS 1.6/macOS 10.8@
- */
-
-
-ipp_attribute_t *			/* O - New attribute */
-ippCopyAttribute(
-    ipp_t           *dst,		/* I - Destination IPP message */
-    ipp_attribute_t *srcattr,		/* I - Attribute to copy */
-    int             quickcopy)		/* I - 1 for a referenced copy, 0 for normal */
-{
-  int			i;		/* Looping var */
-  ipp_attribute_t	*dstattr;	/* Destination attribute */
-  _ipp_value_t		*srcval,	/* Source value */
-			*dstval;	/* Destination value */
-
-
-  DEBUG_printf(("ippCopyAttribute(dst=%p, srcattr=%p, quickcopy=%d)", (void *)dst, (void *)srcattr, quickcopy));
-
- /*
-  * Range check input...
-  */
-
-  if (!dst || !srcattr)
-    return (NULL);
-
- /*
-  * Copy it...
-  */
-
-  quickcopy = quickcopy ? IPP_TAG_CUPS_CONST : 0;
-
-  switch (srcattr->value_tag & ~IPP_TAG_CUPS_CONST)
-  {
-    case IPP_TAG_ZERO :
-        dstattr = ippAddSeparator(dst);
-	break;
-
-    case IPP_TAG_UNSUPPORTED_VALUE :
-    case IPP_TAG_DEFAULT :
-    case IPP_TAG_UNKNOWN :
-    case IPP_TAG_NOVALUE :
-    case IPP_TAG_NOTSETTABLE :
-    case IPP_TAG_DELETEATTR :
-    case IPP_TAG_ADMINDEFINE :
-        dstattr = ippAddOutOfBand(dst, srcattr->group_tag, srcattr->value_tag & ~IPP_TAG_CUPS_CONST, srcattr->name);
-        break;
-
-    case IPP_TAG_INTEGER :
-    case IPP_TAG_ENUM :
-        dstattr = ippAddIntegers(dst, srcattr->group_tag, srcattr->value_tag,
-	                         srcattr->name, srcattr->num_values, NULL);
-        if (!dstattr)
-          break;
-
-        for (i = srcattr->num_values, srcval = srcattr->values, dstval = dstattr->values;
-             i > 0;
-             i --, srcval ++, dstval ++)
-	  dstval->integer = srcval->integer;
-        break;
-
-    case IPP_TAG_BOOLEAN :
-        dstattr = ippAddBooleans(dst, srcattr->group_tag, srcattr->name,
-	                        srcattr->num_values, NULL);
-        if (!dstattr)
-          break;
-
-        for (i = srcattr->num_values, srcval = srcattr->values, dstval = dstattr->values;
-             i > 0;
-             i --, srcval ++, dstval ++)
-	  dstval->boolean = srcval->boolean;
-        break;
-
-    case IPP_TAG_TEXT :
-    case IPP_TAG_NAME :
-    case IPP_TAG_KEYWORD :
-    case IPP_TAG_URI :
-    case IPP_TAG_URISCHEME :
-    case IPP_TAG_CHARSET :
-    case IPP_TAG_LANGUAGE :
-    case IPP_TAG_MIMETYPE :
-        dstattr = ippAddStrings(dst, srcattr->group_tag,
-	                        (ipp_tag_t)(srcattr->value_tag | quickcopy),
-	                        srcattr->name, srcattr->num_values, NULL, NULL);
-        if (!dstattr)
-          break;
-
-        if (quickcopy)
-	{
-	  for (i = srcattr->num_values, srcval = srcattr->values,
-	           dstval = dstattr->values;
-	       i > 0;
-	       i --, srcval ++, dstval ++)
-	    dstval->string.text = srcval->string.text;
-        }
-	else if (srcattr->value_tag & IPP_TAG_CUPS_CONST)
-	{
-	  for (i = srcattr->num_values, srcval = srcattr->values,
-	           dstval = dstattr->values;
-	       i > 0;
-	       i --, srcval ++, dstval ++)
-	    dstval->string.text = _cupsStrAlloc(srcval->string.text);
-	}
-	else
-	{
-	  for (i = srcattr->num_values, srcval = srcattr->values,
-	           dstval = dstattr->values;
-	       i > 0;
-	       i --, srcval ++, dstval ++)
-	    dstval->string.text = _cupsStrRetain(srcval->string.text);
-	}
-        break;
-
-    case IPP_TAG_DATE :
-        if (srcattr->num_values != 1)
-          return (NULL);
-
-        dstattr = ippAddDate(dst, srcattr->group_tag, srcattr->name,
-	                     srcattr->values[0].date);
-        break;
-
-    case IPP_TAG_RESOLUTION :
-        dstattr = ippAddResolutions(dst, srcattr->group_tag, srcattr->name,
-	                            srcattr->num_values, IPP_RES_PER_INCH,
-				    NULL, NULL);
-        if (!dstattr)
-          break;
-
-        for (i = srcattr->num_values, srcval = srcattr->values, dstval = dstattr->values;
-             i > 0;
-             i --, srcval ++, dstval ++)
-	{
-	  dstval->resolution.xres  = srcval->resolution.xres;
-	  dstval->resolution.yres  = srcval->resolution.yres;
-	  dstval->resolution.units = srcval->resolution.units;
-	}
-        break;
-
-    case IPP_TAG_RANGE :
-        dstattr = ippAddRanges(dst, srcattr->group_tag, srcattr->name,
-	                       srcattr->num_values, NULL, NULL);
-        if (!dstattr)
-          break;
-
-        for (i = srcattr->num_values, srcval = srcattr->values, dstval = dstattr->values;
-             i > 0;
-             i --, srcval ++, dstval ++)
-	{
-	  dstval->range.lower = srcval->range.lower;
-	  dstval->range.upper = srcval->range.upper;
-	}
-        break;
-
-    case IPP_TAG_TEXTLANG :
-    case IPP_TAG_NAMELANG :
-        dstattr = ippAddStrings(dst, srcattr->group_tag,
-	                        (ipp_tag_t)(srcattr->value_tag | quickcopy),
-	                        srcattr->name, srcattr->num_values, NULL, NULL);
-        if (!dstattr)
-          break;
-
-        if (quickcopy)
-	{
-	  for (i = srcattr->num_values, srcval = srcattr->values,
-	           dstval = dstattr->values;
-	       i > 0;
-	       i --, srcval ++, dstval ++)
-	  {
-            dstval->string.language = srcval->string.language;
-	    dstval->string.text     = srcval->string.text;
-          }
-        }
-	else if (srcattr->value_tag & IPP_TAG_CUPS_CONST)
-	{
-	  for (i = srcattr->num_values, srcval = srcattr->values,
-	           dstval = dstattr->values;
-	       i > 0;
-	       i --, srcval ++, dstval ++)
-	  {
-	    if (srcval == srcattr->values)
-              dstval->string.language = _cupsStrAlloc(srcval->string.language);
-	    else
-              dstval->string.language = dstattr->values[0].string.language;
-
-	    dstval->string.text = _cupsStrAlloc(srcval->string.text);
-          }
-        }
-	else
-	{
-	  for (i = srcattr->num_values, srcval = srcattr->values,
-	           dstval = dstattr->values;
-	       i > 0;
-	       i --, srcval ++, dstval ++)
-	  {
-	    if (srcval == srcattr->values)
-              dstval->string.language = _cupsStrRetain(srcval->string.language);
-	    else
-              dstval->string.language = dstattr->values[0].string.language;
-
-	    dstval->string.text = _cupsStrRetain(srcval->string.text);
-          }
-        }
-        break;
-
-    case IPP_TAG_BEGIN_COLLECTION :
-        dstattr = ippAddCollections(dst, srcattr->group_tag, srcattr->name,
-	                            srcattr->num_values, NULL);
-        if (!dstattr)
-          break;
-
-        for (i = srcattr->num_values, srcval = srcattr->values, dstval = dstattr->values;
-             i > 0;
-             i --, srcval ++, dstval ++)
-	{
-	  dstval->collection = srcval->collection;
-	  srcval->collection->use ++;
-	}
-        break;
-
-    case IPP_TAG_STRING :
-    default :
-        /* TODO: Implement quick copy for unknown/octetString values */
-        dstattr = ippAddIntegers(dst, srcattr->group_tag, srcattr->value_tag,
-	                         srcattr->name, srcattr->num_values, NULL);
-        if (!dstattr)
-          break;
-
-        for (i = srcattr->num_values, srcval = srcattr->values, dstval = dstattr->values;
-             i > 0;
-             i --, srcval ++, dstval ++)
-	{
-	  dstval->unknown.length = srcval->unknown.length;
-
-	  if (dstval->unknown.length > 0)
-	  {
-	    if ((dstval->unknown.data = malloc((size_t)dstval->unknown.length)) == NULL)
-	      dstval->unknown.length = 0;
-	    else
-	      memcpy(dstval->unknown.data, srcval->unknown.data, (size_t)dstval->unknown.length);
-	  }
-	}
-        break; /* anti-compiler-warning-code */
-  }
-
-  return (dstattr);
-}
-
-
-/*
- * 'ippCopyAttributes()' - Copy attributes from one IPP message to another.
- *
- * Zero or more attributes are copied from the source IPP message, @code src@, to the
- * destination IPP message, @code dst@. When @code quickcopy@ is non-zero, a "shallow"
- * reference copy of the attribute is created - this should only be done as long as the
- * 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
- * itself.
- *
- * @since CUPS 1.6/macOS 10.8@
- */
-
-int					/* O - 1 on success, 0 on error */
-ippCopyAttributes(
-    ipp_t        *dst,			/* I - Destination IPP message */
-    ipp_t        *src,			/* I - Source IPP message */
-    int          quickcopy,		/* I - 1 for a referenced copy, 0 for normal */
-    ipp_copycb_t cb,			/* I - Copy callback or @code NULL@ for none */
-    void         *context)		/* I - Context pointer */
-{
-  ipp_attribute_t	*srcattr;	/* Source attribute */
-
-
-  DEBUG_printf(("ippCopyAttributes(dst=%p, src=%p, quickcopy=%d, cb=%p, context=%p)", (void *)dst, (void *)src, quickcopy, (void *)cb, context));
-
- /*
-  * Range check input...
-  */
-
-  if (!dst || !src)
-    return (0);
-
- /*
-  * Loop through source attributes and copy as needed...
-  */
-
-  for (srcattr = src->attrs; srcattr; srcattr = srcattr->next)
-    if (!cb || (*cb)(context, dst, srcattr))
-      if (!ippCopyAttribute(dst, srcattr, quickcopy))
-        return (0);
-
-  return (1);
-}
-
-
-/*
- * 'ippDateToTime()' - Convert from RFC 2579 Date/Time format to time in
- *                     seconds.
- */
-
-time_t					/* O - UNIX time value */
-ippDateToTime(const ipp_uchar_t *date)	/* I - RFC 2579 date info */
-{
-  struct tm	unixdate;		/* UNIX date/time info */
-  time_t	t;			/* Computed time */
-
-
-  if (!date)
-    return (0);
-
-  memset(&unixdate, 0, sizeof(unixdate));
-
- /*
-  * RFC-2579 date/time format is:
-  *
-  *    Byte(s)  Description
-  *    -------  -----------
-  *    0-1      Year (0 to 65535)
-  *    2        Month (1 to 12)
-  *    3        Day (1 to 31)
-  *    4        Hours (0 to 23)
-  *    5        Minutes (0 to 59)
-  *    6        Seconds (0 to 60, 60 = "leap second")
-  *    7        Deciseconds (0 to 9)
-  *    8        +/- UTC
-  *    9        UTC hours (0 to 11)
-  *    10       UTC minutes (0 to 59)
-  */
-
-  unixdate.tm_year = ((date[0] << 8) | date[1]) - 1900;
-  unixdate.tm_mon  = date[2] - 1;
-  unixdate.tm_mday = date[3];
-  unixdate.tm_hour = date[4];
-  unixdate.tm_min  = date[5];
-  unixdate.tm_sec  = date[6];
-
-  t = mktime(&unixdate);
-
-  if (date[8] == '-')
-    t += date[9] * 3600 + date[10] * 60;
-  else
-    t -= date[9] * 3600 + date[10] * 60;
-
-  return (t);
-}
-
-
-/*
- * 'ippDelete()' - Delete an IPP message.
- */
-
-void
-ippDelete(ipp_t *ipp)			/* I - IPP message */
-{
-  ipp_attribute_t	*attr,		/* Current attribute */
-			*next;		/* Next attribute */
-
-
-  DEBUG_printf(("ippDelete(ipp=%p)", (void *)ipp));
-
-  if (!ipp)
-    return;
-
-  ipp->use --;
-  if (ipp->use > 0)
-  {
-    DEBUG_printf(("4debug_retain: %p IPP message (use=%d)", (void *)ipp, ipp->use));
-    return;
-  }
-
-  DEBUG_printf(("4debug_free: %p IPP message", (void *)ipp));
-
-  for (attr = ipp->attrs; attr != NULL; attr = next)
-  {
-    next = attr->next;
-
-    DEBUG_printf(("4debug_free: %p %s %s%s (%d values)", (void *)attr, attr->name, attr->num_values > 1 ? "1setOf " : "", ippTagString(attr->value_tag), attr->num_values));
-
-    ipp_free_values(attr, 0, attr->num_values);
-
-    if (attr->name)
-      _cupsStrFree(attr->name);
-
-    free(attr);
-  }
-
-  free(ipp);
-}
-
-
-/*
- * 'ippDeleteAttribute()' - Delete a single attribute in an IPP message.
- *
- * @since CUPS 1.1.19/macOS 10.3@
- */
-
-void
-ippDeleteAttribute(
-    ipp_t           *ipp,		/* I - IPP message */
-    ipp_attribute_t *attr)		/* I - Attribute to delete */
-{
-  ipp_attribute_t	*current,	/* Current attribute */
-			*prev;		/* Previous attribute */
-
-
-  DEBUG_printf(("ippDeleteAttribute(ipp=%p, attr=%p(%s))", (void *)ipp, (void *)attr, attr ? attr->name : "(null)"));
-
- /*
-  * Range check input...
-  */
-
-  if (!attr)
-    return;
-
-  DEBUG_printf(("4debug_free: %p %s %s%s (%d values)", (void *)attr, attr->name, attr->num_values > 1 ? "1setOf " : "", ippTagString(attr->value_tag), attr->num_values));
-
- /*
-  * Find the attribute in the list...
-  */
-
-  if (ipp)
-  {
-    for (current = ipp->attrs, prev = NULL;
-	 current;
-	 prev = current, current = current->next)
-      if (current == attr)
-      {
-       /*
-	* Found it, remove the attribute from the list...
-	*/
-
-	if (prev)
-	  prev->next = current->next;
-	else
-	  ipp->attrs = current->next;
-
-	if (current == ipp->last)
-	  ipp->last = prev;
-
-        break;
-      }
-
-    if (!current)
-      return;
-  }
-
- /*
-  * Free memory used by the attribute...
-  */
-
-  ipp_free_values(attr, 0, attr->num_values);
-
-  if (attr->name)
-    _cupsStrFree(attr->name);
-
-  free(attr);
-}
-
-
-/*
- * 'ippDeleteValues()' - Delete values in an attribute.
- *
- * The @code element@ parameter specifies the first value to delete, starting at
- * 0. It must be less than the number of values returned by @link ippGetCount@.
- *
- * The @code attr@ parameter may be modified as a result of setting the value.
- *
- * Deleting all values in an attribute deletes the attribute.
- *
- * @since CUPS 1.6/macOS 10.8@
- */
-
-int					/* O  - 1 on success, 0 on failure */
-ippDeleteValues(
-    ipp_t           *ipp,		/* I  - IPP message */
-    ipp_attribute_t **attr,		/* IO - Attribute */
-    int             element,		/* I  - Index of first value to delete (0-based) */
-    int             count)		/* I  - Number of values to delete */
-{
- /*
-  * Range check input...
-  */
-
-  if (!ipp || !attr || !*attr ||
-      element < 0 || element >= (*attr)->num_values || count <= 0 ||
-      (element + count) >= (*attr)->num_values)
-    return (0);
-
- /*
-  * If we are deleting all values, just delete the attribute entirely.
-  */
-
-  if (count == (*attr)->num_values)
-  {
-    ippDeleteAttribute(ipp, *attr);
-    *attr = NULL;
-    return (1);
-  }
-
- /*
-  * Otherwise free the values in question and return.
-  */
-
-  ipp_free_values(*attr, element, count);
-
-  return (1);
-}
-
-
-/*
- * 'ippFindAttribute()' - Find a named attribute in a request.
- *
- * Starting with CUPS 2.0, the attribute name can contain a hierarchical list
- * of attribute and member names separated by slashes, for example
- * "media-col/media-size".
- */
-
-ipp_attribute_t	*			/* O - Matching attribute */
-ippFindAttribute(ipp_t      *ipp,	/* I - IPP message */
-                 const char *name,	/* I - Name of attribute */
-		 ipp_tag_t  type)	/* I - Type of attribute */
-{
-  DEBUG_printf(("2ippFindAttribute(ipp=%p, name=\"%s\", type=%02x(%s))", (void *)ipp, name, type, ippTagString(type)));
-
-  if (!ipp || !name)
-    return (NULL);
-
- /*
-  * Reset the current pointer...
-  */
-
-  ipp->current = NULL;
-  ipp->atend   = 0;
-
- /*
-  * Search for the attribute...
-  */
-
-  return (ippFindNextAttribute(ipp, name, type));
-}
-
-
-/*
- * 'ippFindNextAttribute()' - Find the next named attribute in a request.
- *
- * Starting with CUPS 2.0, the attribute name can contain a hierarchical list
- * of attribute and member names separated by slashes, for example
- * "media-col/media-size".
- */
-
-ipp_attribute_t	*			/* O - Matching attribute */
-ippFindNextAttribute(ipp_t      *ipp,	/* I - IPP message */
-                     const char *name,	/* I - Name of attribute */
-		     ipp_tag_t  type)	/* I - Type of attribute */
-{
-  ipp_attribute_t	*attr,		/* Current atttribute */
-			*childattr;	/* Child attribute */
-  ipp_tag_t		value_tag;	/* Value tag */
-  char			parent[1024],	/* Parent attribute name */
-			*child = NULL;	/* Child attribute name */
-
-
-  DEBUG_printf(("2ippFindNextAttribute(ipp=%p, name=\"%s\", type=%02x(%s))", (void *)ipp, name, type, ippTagString(type)));
-
-  if (!ipp || !name)
-    return (NULL);
-
-  DEBUG_printf(("3ippFindNextAttribute: atend=%d", ipp->atend));
-
-  if (ipp->atend)
-    return (NULL);
-
-  if (strchr(name, '/'))
-  {
-   /*
-    * Search for child attribute...
-    */
-
-    strlcpy(parent, name, sizeof(parent));
-    if ((child = strchr(parent, '/')) == NULL)
-    {
-      DEBUG_puts("3ippFindNextAttribute: Attribute name too long.");
-      return (NULL);
-    }
-
-    *child++ = '\0';
-
-    if (ipp->current && ipp->current->name && ipp->current->value_tag == IPP_TAG_BEGIN_COLLECTION && !strcmp(parent, ipp->current->name))
-    {
-      while (ipp->curindex < ipp->current->num_values)
-      {
-        if ((childattr = ippFindNextAttribute(ipp->current->values[ipp->curindex].collection, child, type)) != NULL)
-          return (childattr);
-
-        ipp->curindex ++;
-        if (ipp->curindex < ipp->current->num_values && ipp->current->values[ipp->curindex].collection)
-          ipp->current->values[ipp->curindex].collection->current = NULL;
-      }
-
-      ipp->prev     = ipp->current;
-      ipp->current  = ipp->current->next;
-      ipp->curindex = 0;
-
-      if (!ipp->current)
-      {
-        ipp->atend = 1;
-        return (NULL);
-      }
-    }
-
-    if (!ipp->current)
-    {
-      ipp->prev     = NULL;
-      ipp->current  = ipp->attrs;
-      ipp->curindex = 0;
-    }
-
-    name = parent;
-    attr = ipp->current;
-  }
-  else if (ipp->current)
-  {
-    ipp->prev = ipp->current;
-    attr      = ipp->current->next;
-  }
-  else
-  {
-    ipp->prev = NULL;
-    attr      = ipp->attrs;
-  }
-
-  for (; attr != NULL; ipp->prev = attr, attr = attr->next)
-  {
-    DEBUG_printf(("4ippFindAttribute: attr=%p, name=\"%s\"", (void *)attr, attr->name));
-
-    value_tag = (ipp_tag_t)(attr->value_tag & IPP_TAG_CUPS_MASK);
-
-    if (attr->name != NULL && _cups_strcasecmp(attr->name, name) == 0 &&
-        (value_tag == type || type == IPP_TAG_ZERO || name == parent ||
-	 (value_tag == IPP_TAG_TEXTLANG && type == IPP_TAG_TEXT) ||
-	 (value_tag == IPP_TAG_NAMELANG && type == IPP_TAG_NAME)))
-    {
-      ipp->current = attr;
-
-      if (name == parent && attr->value_tag == IPP_TAG_BEGIN_COLLECTION)
-      {
-        int i;				/* Looping var */
-
-        for (i = 0; i < attr->num_values; i ++)
-        {
-	  if ((childattr = ippFindAttribute(attr->values[i].collection, child, type)) != NULL)
-	  {
-	    attr->values[0].collection->curindex = i;
-	    return (childattr);
-	  }
-        }
-      }
-      else
-        return (attr);
-    }
-  }
-
-  ipp->current = NULL;
-  ipp->prev    = NULL;
-  ipp->atend   = 1;
-
-  return (NULL);
-}
-
-
-/*
- * 'ippFirstAttribute()' - Return the first attribute in the message.
- *
- * @since CUPS 1.6/macOS 10.8@
- */
-
-ipp_attribute_t	*			/* O - First attribute or @code NULL@ if none */
-ippFirstAttribute(ipp_t *ipp)		/* I - IPP message */
-{
- /*
-  * Range check input...
-  */
-
-  if (!ipp)
-    return (NULL);
-
- /*
-  * Return the first attribute...
-  */
-
-  return (ipp->current = ipp->attrs);
-}
-
-
-/*
- * 'ippGetBoolean()' - Get a boolean value for an attribute.
- *
- * The @code element@ parameter specifies which value to get from 0 to
- * @code ippGetCount(attr)@ - 1.
- *
- * @since CUPS 1.6/macOS 10.8@
- */
-
-int					/* O - Boolean value or 0 on error */
-ippGetBoolean(ipp_attribute_t *attr,	/* I - IPP attribute */
-              int             element)	/* I - Value number (0-based) */
-{
- /*
-  * Range check input...
-  */
-
-  if (!attr || attr->value_tag != IPP_TAG_BOOLEAN ||
-      element < 0 || element >= attr->num_values)
-    return (0);
-
- /*
-  * Return the value...
-  */
-
-  return (attr->values[element].boolean);
-}
-
-
-/*
- * 'ippGetCollection()' - Get a collection value for an attribute.
- *
- * The @code element@ parameter specifies which value to get from 0 to
- * @code ippGetCount(attr)@ - 1.
- *
- * @since CUPS 1.6/macOS 10.8@
- */
-
-ipp_t *					/* O - Collection value or @code NULL@ on error */
-ippGetCollection(
-    ipp_attribute_t *attr,		/* I - IPP attribute */
-    int             element)		/* I - Value number (0-based) */
-{
- /*
-  * Range check input...
-  */
-
-  if (!attr || attr->value_tag != IPP_TAG_BEGIN_COLLECTION ||
-      element < 0 || element >= attr->num_values)
-    return (NULL);
-
- /*
-  * Return the value...
-  */
-
-  return (attr->values[element].collection);
-}
-
-
-/*
- * 'ippGetCount()' - Get the number of values in an attribute.
- *
- * @since CUPS 1.6/macOS 10.8@
- */
-
-int					/* O - Number of values or 0 on error */
-ippGetCount(ipp_attribute_t *attr)	/* I - IPP attribute */
-{
- /*
-  * Range check input...
-  */
-
-  if (!attr)
-    return (0);
-
- /*
-  * Return the number of values...
-  */
-
-  return (attr->num_values);
-}
-
-
-/*
- * 'ippGetDate()' - Get a dateTime value for an attribute.
- *
- * The @code element@ parameter specifies which value to get from 0 to
- * @code ippGetCount(attr)@ - 1.
- *
- * @since CUPS 1.6/macOS 10.8@
- */
-
-const ipp_uchar_t *			/* O - dateTime value or @code NULL@ */
-ippGetDate(ipp_attribute_t *attr,	/* I - IPP attribute */
-           int             element)	/* I - Value number (0-based) */
-{
- /*
-  * Range check input...
-  */
-
-  if (!attr || attr->value_tag != IPP_TAG_DATE ||
-      element < 0 || element >= attr->num_values)
-    return (NULL);
-
- /*
-  * Return the value...
-  */
-
-  return (attr->values[element].date);
-}
-
-
-/*
- * 'ippGetGroupTag()' - Get the group associated with an attribute.
- *
- * @since CUPS 1.6/macOS 10.8@
- */
-
-ipp_tag_t				/* O - Group tag or @code IPP_TAG_ZERO@ on error */
-ippGetGroupTag(ipp_attribute_t *attr)	/* I - IPP attribute */
-{
- /*
-  * Range check input...
-  */
-
-  if (!attr)
-    return (IPP_TAG_ZERO);
-
- /*
-  * Return the group...
-  */
-
-  return (attr->group_tag);
-}
-
-
-/*
- * 'ippGetInteger()' - Get the integer/enum value for an attribute.
- *
- * The @code element@ parameter specifies which value to get from 0 to
- * @code ippGetCount(attr)@ - 1.
- *
- * @since CUPS 1.6/macOS 10.8@
- */
-
-int					/* O - Value or 0 on error */
-ippGetInteger(ipp_attribute_t *attr,	/* I - IPP attribute */
-              int             element)	/* I - Value number (0-based) */
-{
- /*
-  * Range check input...
-  */
-
-  if (!attr || (attr->value_tag != IPP_TAG_INTEGER && attr->value_tag != IPP_TAG_ENUM) ||
-      element < 0 || element >= attr->num_values)
-    return (0);
-
- /*
-  * Return the value...
-  */
-
-  return (attr->values[element].integer);
-}
-
-
-/*
- * 'ippGetName()' - Get the attribute name.
- *
- * @since CUPS 1.6/macOS 10.8@
- */
-
-const char *				/* O - Attribute name or @code NULL@ for separators */
-ippGetName(ipp_attribute_t *attr)	/* I - IPP attribute */
-{
- /*
-  * Range check input...
-  */
-
-  if (!attr)
-    return (NULL);
-
- /*
-  * Return the name...
-  */
-
-  return (attr->name);
-}
-
-
-/*
- * 'ippGetOctetString()' - Get an octetString value from an IPP attribute.
- *
- * The @code element@ parameter specifies which value to get from 0 to
- * @code ippGetCount(attr)@ - 1.
- *
- * @since CUPS 1.7/macOS 10.9@
- */
-
-void *					/* O - Pointer to octetString data */
-ippGetOctetString(
-    ipp_attribute_t *attr,		/* I - IPP attribute */
-    int             element,		/* I - Value number (0-based) */
-    int             *datalen)		/* O - Length of octetString data */
-{
- /*
-  * Range check input...
-  */
-
-  if (!attr || attr->value_tag != IPP_TAG_STRING ||
-      element < 0 || element >= attr->num_values)
-  {
-    if (datalen)
-      *datalen = 0;
-
-    return (NULL);
-  }
-
- /*
-  * Return the values...
-  */
-
-  if (datalen)
-    *datalen = attr->values[element].unknown.length;
-
-  return (attr->values[element].unknown.data);
-}
-
-
-/*
- * 'ippGetOperation()' - Get the operation ID in an IPP message.
- *
- * @since CUPS 1.6/macOS 10.8@
- */
-
-ipp_op_t				/* O - Operation ID or 0 on error */
-ippGetOperation(ipp_t *ipp)		/* I - IPP request message */
-{
- /*
-  * Range check input...
-  */
-
-  if (!ipp)
-    return ((ipp_op_t)0);
-
- /*
-  * Return the value...
-  */
-
-  return (ipp->request.op.operation_id);
-}
-
-
-/*
- * 'ippGetRange()' - Get a rangeOfInteger value from an attribute.
- *
- * The @code element@ parameter specifies which value to get from 0 to
- * @code ippGetCount(attr)@ - 1.
- *
- * @since CUPS 1.6/macOS 10.8@
- */
-
-int					/* O - Lower value of range or 0 */
-ippGetRange(ipp_attribute_t *attr,	/* I - IPP attribute */
-	    int             element,	/* I - Value number (0-based) */
-	    int             *uppervalue)/* O - Upper value of range */
-{
- /*
-  * Range check input...
-  */
-
-  if (!attr || attr->value_tag != IPP_TAG_RANGE ||
-      element < 0 || element >= attr->num_values)
-  {
-    if (uppervalue)
-      *uppervalue = 0;
-
-    return (0);
-  }
-
- /*
-  * Return the values...
-  */
-
-  if (uppervalue)
-    *uppervalue = attr->values[element].range.upper;
-
-  return (attr->values[element].range.lower);
-}
-
-
-/*
- * 'ippGetRequestId()' - Get the request ID from an IPP message.
- *
- * @since CUPS 1.6/macOS 10.8@
- */
-
-int					/* O - Request ID or 0 on error */
-ippGetRequestId(ipp_t *ipp)		/* I - IPP message */
-{
- /*
-  * Range check input...
-  */
-
-  if (!ipp)
-    return (0);
-
- /*
-  * Return the request ID...
-  */
-
-  return (ipp->request.any.request_id);
-}
-
-
-/*
- * 'ippGetResolution()' - Get a resolution value for an attribute.
- *
- * The @code element@ parameter specifies which value to get from 0 to
- * @code ippGetCount(attr)@ - 1.
- *
- * @since CUPS 1.6/macOS 10.8@
- */
-
-int					/* O - Horizontal/cross feed resolution or 0 */
-ippGetResolution(
-    ipp_attribute_t *attr,		/* I - IPP attribute */
-    int             element,		/* I - Value number (0-based) */
-    int             *yres,		/* O - Vertical/feed resolution */
-    ipp_res_t       *units)		/* O - Units for resolution */
-{
- /*
-  * Range check input...
-  */
-
-  if (!attr || attr->value_tag != IPP_TAG_RESOLUTION ||
-      element < 0 || element >= attr->num_values)
-  {
-    if (yres)
-      *yres = 0;
-
-    if (units)
-      *units = (ipp_res_t)0;
-
-    return (0);
-  }
-
- /*
-  * Return the value...
-  */
-
-  if (yres)
-    *yres = attr->values[element].resolution.yres;
-
-  if (units)
-    *units = attr->values[element].resolution.units;
-
-  return (attr->values[element].resolution.xres);
-}
-
-
-/*
- * 'ippGetState()' - Get the IPP message state.
- *
- * @since CUPS 1.6/macOS 10.8@
- */
-
-ipp_state_t				/* O - IPP message state value */
-ippGetState(ipp_t *ipp)			/* I - IPP message */
-{
- /*
-  * Range check input...
-  */
-
-  if (!ipp)
-    return (IPP_STATE_IDLE);
-
- /*
-  * Return the value...
-  */
-
-  return (ipp->state);
-}
-
-
-/*
- * 'ippGetStatusCode()' - Get the status code from an IPP response or event message.
- *
- * @since CUPS 1.6/macOS 10.8@
- */
-
-ipp_status_t				/* O - Status code in IPP message */
-ippGetStatusCode(ipp_t *ipp)		/* I - IPP response or event message */
-{
- /*
-  * Range check input...
-  */
-
-  if (!ipp)
-    return (IPP_STATUS_ERROR_INTERNAL);
-
- /*
-  * Return the value...
-  */
-
-  return (ipp->request.status.status_code);
-}
-
-
-/*
- * 'ippGetString()' - Get the string and optionally the language code for an attribute.
- *
- * The @code element@ parameter specifies which value to get from 0 to
- * @code ippGetCount(attr)@ - 1.
- *
- * @since CUPS 1.6/macOS 10.8@
- */
-
-const char *
-ippGetString(ipp_attribute_t *attr,	/* I - IPP attribute */
-             int             element,	/* I - Value number (0-based) */
-	     const char      **language)/* O - Language code (@code NULL@ for don't care) */
-{
-  ipp_tag_t	tag;			/* Value tag */
-
-
- /*
-  * Range check input...
-  */
-
-  tag = ippGetValueTag(attr);
-
-  if (!attr || element < 0 || element >= attr->num_values || (tag != IPP_TAG_TEXTLANG && tag != IPP_TAG_NAMELANG && (tag < IPP_TAG_TEXT || tag > IPP_TAG_MIMETYPE)))
-    return (NULL);
-
- /*
-  * Return the value...
-  */
-
-  if (language)
-    *language = attr->values[element].string.language;
-
-  return (attr->values[element].string.text);
-}
-
-
-/*
- * 'ippGetValueTag()' - Get the value tag for an attribute.
- *
- * @since CUPS 1.6/macOS 10.8@
- */
-
-ipp_tag_t				/* O - Value tag or @code IPP_TAG_ZERO@ on error */
-ippGetValueTag(ipp_attribute_t *attr)	/* I - IPP attribute */
-{
- /*
-  * Range check input...
-  */
-
-  if (!attr)
-    return (IPP_TAG_ZERO);
-
- /*
-  * Return the value...
-  */
-
-  return (attr->value_tag & IPP_TAG_CUPS_MASK);
-}
-
-
-/*
- * 'ippGetVersion()' - Get the major and minor version number from an IPP message.
- *
- * @since CUPS 1.6/macOS 10.8@
- */
-
-int					/* O - Major version number or 0 on error */
-ippGetVersion(ipp_t *ipp,		/* I - IPP message */
-              int   *minor)		/* O - Minor version number or @code NULL@ for don't care */
-{
- /*
-  * Range check input...
-  */
-
-  if (!ipp)
-  {
-    if (minor)
-      *minor = 0;
-
-    return (0);
-  }
-
- /*
-  * Return the value...
-  */
-
-  if (minor)
-    *minor = ipp->request.any.version[1];
-
-  return (ipp->request.any.version[0]);
-}
-
-
-/*
- * 'ippLength()' - Compute the length of an IPP message.
- */
-
-size_t					/* O - Size of IPP message */
-ippLength(ipp_t *ipp)			/* I - IPP message */
-{
-  return (ipp_length(ipp, 0));
-}
-
-
-/*
- * 'ippNextAttribute()' - Return the next attribute in the message.
- *
- * @since CUPS 1.6/macOS 10.8@
- */
-
-ipp_attribute_t *			/* O - Next attribute or @code NULL@ if none */
-ippNextAttribute(ipp_t *ipp)		/* I - IPP message */
-{
- /*
-  * Range check input...
-  */
-
-  if (!ipp || !ipp->current)
-    return (NULL);
-
- /*
-  * Return the next attribute...
-  */
-
-  return (ipp->current = ipp->current->next);
-}
-
-
-/*
- * 'ippNew()' - Allocate a new IPP message.
- */
-
-ipp_t *					/* O - New IPP message */
-ippNew(void)
-{
-  ipp_t			*temp;		/* New IPP message */
-  _cups_globals_t	*cg = _cupsGlobals();
-					/* Global data */
-
-
-  DEBUG_puts("ippNew()");
-
-  if ((temp = (ipp_t *)calloc(1, sizeof(ipp_t))) != NULL)
-  {
-   /*
-    * Set default version - usually 2.0...
-    */
-
-    DEBUG_printf(("4debug_alloc: %p IPP message", (void *)temp));
-
-    if (cg->server_version == 0)
-      _cupsSetDefaults();
-
-    temp->request.any.version[0] = (ipp_uchar_t)(cg->server_version / 10);
-    temp->request.any.version[1] = (ipp_uchar_t)(cg->server_version % 10);
-    temp->use                    = 1;
-  }
-
-  DEBUG_printf(("1ippNew: Returning %p", (void *)temp));
-
-  return (temp);
-}
-
-
-/*
- *  'ippNewRequest()' - Allocate a new IPP request message.
- *
- * The new request message is initialized with the "attributes-charset" and
- * "attributes-natural-language" attributes added. The
- * "attributes-natural-language" value is derived from the current locale.
- *
- * @since CUPS 1.2/macOS 10.5@
- */
-
-ipp_t *					/* O - IPP request message */
-ippNewRequest(ipp_op_t op)		/* I - Operation code */
-{
-  ipp_t		*request;		/* IPP request message */
-  cups_lang_t	*language;		/* Current language localization */
-  static int	request_id = 0;		/* Current request ID */
-  static _cups_mutex_t request_mutex = _CUPS_MUTEX_INITIALIZER;
-					/* Mutex for request ID */
-
-
-  DEBUG_printf(("ippNewRequest(op=%02x(%s))", op, ippOpString(op)));
-
- /*
-  * Create a new IPP message...
-  */
-
-  if ((request = ippNew()) == NULL)
-    return (NULL);
-
- /*
-  * Set the operation and request ID...
-  */
-
-  _cupsMutexLock(&request_mutex);
-
-  request->request.op.operation_id = op;
-  request->request.op.request_id   = ++request_id;
-
-  _cupsMutexUnlock(&request_mutex);
-
- /*
-  * Use UTF-8 as the character set...
-  */
-
-  ippAddString(request, IPP_TAG_OPERATION, IPP_TAG_CHARSET,
-               "attributes-charset", NULL, "utf-8");
-
- /*
-  * Get the language from the current locale...
-  */
-
-  language = cupsLangDefault();
-
-  ippAddString(request, IPP_TAG_OPERATION, IPP_TAG_LANGUAGE,
-               "attributes-natural-language", NULL, language->language);
-
- /*
-  * Return the new request...
-  */
-
-  return (request);
-}
-
-
-/*
- * 'ippNewResponse()' - Allocate a new IPP response message.
- *
- * The new response message is initialized with the same "version-number",
- * "request-id", "attributes-charset", and "attributes-natural-language" as the
- * provided request message.  If the "attributes-charset" or
- * "attributes-natural-language" attributes are missing from the request,
- * 'utf-8' and a value derived from the current locale are substituted,
- * respectively.
- *
- * @since CUPS 1.7/macOS 10.9@
- */
-
-ipp_t *					/* O - IPP response message */
-ippNewResponse(ipp_t *request)		/* I - IPP request message */
-{
-  ipp_t			*response;	/* IPP response message */
-  ipp_attribute_t	*attr;		/* Current attribute */
-
-
- /*
-  * Range check input...
-  */
-
-  if (!request)
-    return (NULL);
-
- /*
-  * Create a new IPP message...
-  */
-
-  if ((response = ippNew()) == NULL)
-    return (NULL);
-
- /*
-  * Copy the request values over to the response...
-  */
-
-  response->request.status.version[0] = request->request.op.version[0];
-  response->request.status.version[1] = request->request.op.version[1];
-  response->request.status.request_id = request->request.op.request_id;
-
- /*
-  * The first attribute MUST be attributes-charset...
-  */
-
-  attr = request->attrs;
-
-  if (attr && attr->name && !strcmp(attr->name, "attributes-charset") &&
-      attr->group_tag == IPP_TAG_OPERATION &&
-      attr->value_tag == IPP_TAG_CHARSET &&
-      attr->num_values == 1)
-  {
-   /*
-    * Copy charset from request...
-    */
-
-    ippAddString(response, IPP_TAG_OPERATION, IPP_TAG_CHARSET,
-		 "attributes-charset", NULL, attr->values[0].string.text);
-  }
-  else
-  {
-   /*
-    * Use "utf-8" as the default...
-    */
-
-    ippAddString(response, IPP_TAG_OPERATION, IPP_TAG_CHARSET,
-		 "attributes-charset", NULL, "utf-8");
-  }
-
- /*
-  * Then attributes-natural-language...
-  */
-
-  if (attr)
-    attr = attr->next;
-
-  if (attr && attr->name &&
-      !strcmp(attr->name, "attributes-natural-language") &&
-      attr->group_tag == IPP_TAG_OPERATION &&
-      attr->value_tag == IPP_TAG_LANGUAGE &&
-      attr->num_values == 1)
-  {
-   /*
-    * Copy language from request...
-    */
-
-    ippAddString(response, IPP_TAG_OPERATION, IPP_TAG_LANGUAGE,
-		 "attributes-natural-language", NULL,
-		 attr->values[0].string.text);
-  }
-  else
-  {
-   /*
-    * Use the language from the current locale...
-    */
-
-    cups_lang_t *language = cupsLangDefault();
-					/* Current locale */
-
-    ippAddString(response, IPP_TAG_OPERATION, IPP_TAG_LANGUAGE,
-		 "attributes-natural-language", NULL, language->language);
-  }
-
-  return (response);
-}
-
-
-/*
- * 'ippRead()' - Read data for an IPP message from a HTTP connection.
- */
-
-ipp_state_t				/* O - Current state */
-ippRead(http_t *http,			/* I - HTTP connection */
-        ipp_t  *ipp)			/* I - IPP data */
-{
-  DEBUG_printf(("ippRead(http=%p, ipp=%p), data_remaining=" CUPS_LLFMT, (void *)http, (void *)ipp, CUPS_LLCAST (http ? http->data_remaining : -1)));
-
-  if (!http)
-    return (IPP_STATE_ERROR);
-
-  DEBUG_printf(("2ippRead: http->state=%d, http->used=%d", http->state, http->used));
-
-  return (ippReadIO(http, (ipp_iocb_t)ipp_read_http, http->blocking, NULL,
-                    ipp));
-}
-
-
-/*
- * 'ippReadFile()' - Read data for an IPP message from a file.
- *
- * @since CUPS 1.1.19/macOS 10.3@
- */
-
-ipp_state_t				/* O - Current state */
-ippReadFile(int   fd,			/* I - HTTP data */
-            ipp_t *ipp)			/* I - IPP data */
-{
-  DEBUG_printf(("ippReadFile(fd=%d, ipp=%p)", fd, (void *)ipp));
-
-  return (ippReadIO(&fd, (ipp_iocb_t)ipp_read_file, 1, NULL, ipp));
-}
-
-
-/*
- * 'ippReadIO()' - Read data for an IPP message.
- *
- * @since CUPS 1.2/macOS 10.5@
- */
-
-ipp_state_t				/* O - Current state */
-ippReadIO(void       *src,		/* I - Data source */
-          ipp_iocb_t cb,		/* I - Read callback function */
-	  int        blocking,		/* I - Use blocking IO? */
-	  ipp_t      *parent,		/* I - Parent request, if any */
-          ipp_t      *ipp)		/* I - IPP data */
-{
-  int			n;		/* Length of data */
-  unsigned char		*buffer,	/* Data buffer */
-			string[IPP_MAX_TEXT],
-					/* Small string buffer */
-			*bufptr;	/* Pointer into buffer */
-  ipp_attribute_t	*attr;		/* Current attribute */
-  ipp_tag_t		tag;		/* Current tag */
-  ipp_tag_t		value_tag;	/* Current value tag */
-  _ipp_value_t		*value;		/* Current value */
-
-
-  DEBUG_printf(("ippReadIO(src=%p, cb=%p, blocking=%d, parent=%p, ipp=%p)", (void *)src, (void *)cb, blocking, (void *)parent, (void *)ipp));
-  DEBUG_printf(("2ippReadIO: ipp->state=%d", ipp ? ipp->state : IPP_STATE_ERROR));
-
-  if (!src || !ipp)
-    return (IPP_STATE_ERROR);
-
-  if ((buffer = (unsigned char *)_cupsBufferGet(IPP_BUF_SIZE)) == NULL)
-  {
-    DEBUG_puts("1ippReadIO: Unable to get read buffer.");
-    return (IPP_STATE_ERROR);
-  }
-
-  switch (ipp->state)
-  {
-    case IPP_STATE_IDLE :
-        ipp->state ++; /* Avoid common problem... */
-
-    case IPP_STATE_HEADER :
-        if (parent == NULL)
-	{
-	 /*
-          * Get the request header...
-	  */
-
-          if ((*cb)(src, buffer, 8) < 8)
-	  {
-	    DEBUG_puts("1ippReadIO: Unable to read header.");
-	    _cupsBufferRelease((char *)buffer);
-	    return (IPP_STATE_ERROR);
-	  }
-
-	 /*
-          * Then copy the request header over...
-	  */
-
-          ipp->request.any.version[0]  = buffer[0];
-          ipp->request.any.version[1]  = buffer[1];
-          ipp->request.any.op_status   = (buffer[2] << 8) | buffer[3];
-          ipp->request.any.request_id  = (((((buffer[4] << 8) | buffer[5]) << 8) |
-	                        	 buffer[6]) << 8) | buffer[7];
-
-          DEBUG_printf(("2ippReadIO: version=%d.%d", buffer[0], buffer[1]));
-	  DEBUG_printf(("2ippReadIO: op_status=%04x",
-	                ipp->request.any.op_status));
-	  DEBUG_printf(("2ippReadIO: request_id=%d",
-	                ipp->request.any.request_id));
-        }
-
-        ipp->state   = IPP_STATE_ATTRIBUTE;
-	ipp->current = NULL;
-	ipp->curtag  = IPP_TAG_ZERO;
-	ipp->prev    = ipp->last;
-
-       /*
-        * If blocking is disabled, stop here...
-	*/
-
-        if (!blocking)
-	  break;
-
-    case IPP_STATE_ATTRIBUTE :
-        for (;;)
-	{
-	  if ((*cb)(src, buffer, 1) < 1)
-	  {
-	    DEBUG_puts("1ippReadIO: Callback returned EOF/error");
-	    _cupsBufferRelease((char *)buffer);
-	    return (IPP_STATE_ERROR);
-	  }
-
-	  DEBUG_printf(("2ippReadIO: ipp->current=%p, ipp->prev=%p", (void *)ipp->current, (void *)ipp->prev));
-
-	 /*
-	  * Read this attribute...
-	  */
-
-          tag = (ipp_tag_t)buffer[0];
-          if (tag == IPP_TAG_EXTENSION)
-          {
-           /*
-            * Read 32-bit "extension" tag...
-            */
-
-	    if ((*cb)(src, buffer, 4) < 1)
-	    {
-	      DEBUG_puts("1ippReadIO: Callback returned EOF/error");
-	      _cupsBufferRelease((char *)buffer);
-	      return (IPP_STATE_ERROR);
-	    }
-
-	    tag = (ipp_tag_t)((((((buffer[0] << 8) | buffer[1]) << 8) |
-	                        buffer[2]) << 8) | buffer[3]);
-
-            if (tag & IPP_TAG_CUPS_CONST)
-            {
-             /*
-              * Fail if the high bit is set in the tag...
-              */
-
-	      _cupsSetError(IPP_STATUS_ERROR_INTERNAL, _("IPP extension tag larger than 0x7FFFFFFF."), 1);
-	      DEBUG_printf(("1ippReadIO: bad tag 0x%x.", tag));
-	      _cupsBufferRelease((char *)buffer);
-	      return (IPP_STATE_ERROR);
-            }
-          }
-
-	  if (tag == IPP_TAG_END)
-	  {
-	   /*
-	    * No more attributes left...
-	    */
-
-            DEBUG_puts("2ippReadIO: IPP_TAG_END.");
-
-	    ipp->state = IPP_STATE_DATA;
-	    break;
-	  }
-          else if (tag < IPP_TAG_UNSUPPORTED_VALUE)
-	  {
-	   /*
-	    * Group tag...  Set the current group and continue...
-	    */
-
-            if (ipp->curtag == tag)
-	      ipp->prev = ippAddSeparator(ipp);
-            else if (ipp->current)
-	      ipp->prev = ipp->current;
-
-	    ipp->curtag  = tag;
-	    ipp->current = NULL;
-	    DEBUG_printf(("2ippReadIO: group tag=%x(%s), ipp->prev=%p", tag, ippTagString(tag), (void *)ipp->prev));
-	    continue;
-	  }
-
-          DEBUG_printf(("2ippReadIO: value tag=%x(%s)", tag,
-	                ippTagString(tag)));
-
-         /*
-	  * Get the name...
-	  */
-
-          if ((*cb)(src, buffer, 2) < 2)
-	  {
-	    DEBUG_puts("1ippReadIO: unable to read name length.");
-	    _cupsBufferRelease((char *)buffer);
-	    return (IPP_STATE_ERROR);
-	  }
-
-          n = (buffer[0] << 8) | buffer[1];
-
-          if (n >= IPP_BUF_SIZE)
-	  {
-	    _cupsSetError(IPP_STATUS_ERROR_INTERNAL, _("IPP name larger than 32767 bytes."), 1);
-	    DEBUG_printf(("1ippReadIO: bad name length %d.", n));
-	    _cupsBufferRelease((char *)buffer);
-	    return (IPP_STATE_ERROR);
-	  }
-
-          DEBUG_printf(("2ippReadIO: name length=%d", n));
-
-          if (n == 0 && tag != IPP_TAG_MEMBERNAME &&
-	      tag != IPP_TAG_END_COLLECTION)
-	  {
-	   /*
-	    * More values for current attribute...
-	    */
-
-            if (ipp->current == NULL)
-	    {
-	      _cupsSetError(IPP_STATUS_ERROR_INTERNAL, _("IPP attribute has no name."), 1);
-	      DEBUG_puts("1ippReadIO: Attribute without name and no current.");
-	      _cupsBufferRelease((char *)buffer);
-	      return (IPP_STATE_ERROR);
-	    }
-
-            attr      = ipp->current;
-	    value_tag = (ipp_tag_t)(attr->value_tag & IPP_TAG_CUPS_MASK);
-
-	   /*
-	    * Make sure we aren't adding a new value of a different
-	    * type...
-	    */
-
-	    if (value_tag == IPP_TAG_ZERO)
-	    {
-	     /*
-	      * Setting the value of a collection member...
-	      */
-
-	      attr->value_tag = tag;
-	    }
-	    else if (value_tag == IPP_TAG_TEXTLANG ||
-	             value_tag == IPP_TAG_NAMELANG ||
-		     (value_tag >= IPP_TAG_TEXT &&
-		      value_tag <= IPP_TAG_MIMETYPE))
-            {
-	     /*
-	      * String values can sometimes come across in different
-	      * forms; accept sets of differing values...
-	      */
-
-	      if (tag != IPP_TAG_TEXTLANG && tag != IPP_TAG_NAMELANG &&
-	          (tag < IPP_TAG_TEXT || tag > IPP_TAG_MIMETYPE) &&
-		  tag != IPP_TAG_NOVALUE)
-	      {
-		_cupsSetError(IPP_STATUS_ERROR_INTERNAL,
-		              _("IPP 1setOf attribute with incompatible value "
-		                "tags."), 1);
-		DEBUG_printf(("1ippReadIO: 1setOf value tag %x(%s) != %x(%s)",
-			      value_tag, ippTagString(value_tag), tag,
-			      ippTagString(tag)));
-		_cupsBufferRelease((char *)buffer);
-	        return (IPP_STATE_ERROR);
-	      }
-
-              if (value_tag != tag)
-              {
-                DEBUG_printf(("1ippReadIO: Converting %s attribute from %s to %s.",
-                              attr->name, ippTagString(value_tag), ippTagString(tag)));
-		ippSetValueTag(ipp, &attr, tag);
-	      }
-            }
-	    else if (value_tag == IPP_TAG_INTEGER ||
-	             value_tag == IPP_TAG_RANGE)
-            {
-	     /*
-	      * Integer and rangeOfInteger values can sometimes be mixed; accept
-	      * sets of differing values...
-	      */
-
-	      if (tag != IPP_TAG_INTEGER && tag != IPP_TAG_RANGE)
-	      {
-		_cupsSetError(IPP_STATUS_ERROR_INTERNAL,
-		              _("IPP 1setOf attribute with incompatible value "
-		                "tags."), 1);
-		DEBUG_printf(("1ippReadIO: 1setOf value tag %x(%s) != %x(%s)",
-			      value_tag, ippTagString(value_tag), tag,
-			      ippTagString(tag)));
-		_cupsBufferRelease((char *)buffer);
-	        return (IPP_STATE_ERROR);
-	      }
-
-              if (value_tag == IPP_TAG_INTEGER && tag == IPP_TAG_RANGE)
-              {
-               /*
-                * Convert integer values to rangeOfInteger values...
-                */
-
-		DEBUG_printf(("1ippReadIO: Converting %s attribute to "
-		              "rangeOfInteger.", attr->name));
-                ippSetValueTag(ipp, &attr, IPP_TAG_RANGE);
-              }
-            }
-	    else if (value_tag != tag)
-	    {
-	      _cupsSetError(IPP_STATUS_ERROR_INTERNAL,
-			    _("IPP 1setOf attribute with incompatible value "
-			      "tags."), 1);
-	      DEBUG_printf(("1ippReadIO: value tag %x(%s) != %x(%s)",
-	                    value_tag, ippTagString(value_tag), tag,
-			    ippTagString(tag)));
-	      _cupsBufferRelease((char *)buffer);
-	      return (IPP_STATE_ERROR);
-            }
-
-           /*
-	    * Finally, reallocate the attribute array as needed...
-	    */
-
-	    if ((value = ipp_set_value(ipp, &attr, attr->num_values)) == NULL)
-	    {
-	      _cupsBufferRelease((char *)buffer);
-	      return (IPP_STATE_ERROR);
-	    }
-	  }
-	  else if (tag == IPP_TAG_MEMBERNAME)
-	  {
-	   /*
-	    * Name must be length 0!
-	    */
-
-	    if (n)
-	    {
-	      _cupsSetError(IPP_STATUS_ERROR_INTERNAL, _("IPP member name is not empty."), 1);
-	      DEBUG_puts("1ippReadIO: member name not empty.");
-	      _cupsBufferRelease((char *)buffer);
-	      return (IPP_STATE_ERROR);
-	    }
-
-            if (ipp->current)
-	      ipp->prev = ipp->current;
-
-	    attr = ipp->current = ipp_add_attr(ipp, NULL, ipp->curtag, IPP_TAG_ZERO, 1);
-	    if (!attr)
-	    {
-	      _cupsSetHTTPError(HTTP_STATUS_ERROR);
-	      DEBUG_puts("1ippReadIO: unable to allocate attribute.");
-	      _cupsBufferRelease((char *)buffer);
-	      return (IPP_STATE_ERROR);
-	    }
-
-	    DEBUG_printf(("2ippReadIO: membername, ipp->current=%p, ipp->prev=%p", (void *)ipp->current, (void *)ipp->prev));
-
-	    value = attr->values;
-	  }
-	  else if (tag != IPP_TAG_END_COLLECTION)
-	  {
-	   /*
-	    * New attribute; read the name and add it...
-	    */
-
-	    if ((*cb)(src, buffer, (size_t)n) < n)
-	    {
-	      DEBUG_puts("1ippReadIO: unable to read name.");
-	      _cupsBufferRelease((char *)buffer);
-	      return (IPP_STATE_ERROR);
-	    }
-
-	    buffer[n] = '\0';
-
-            if (ipp->current)
-	      ipp->prev = ipp->current;
-
-	    if ((attr = ipp->current = ipp_add_attr(ipp, (char *)buffer, ipp->curtag, tag,
-	                                            1)) == NULL)
-	    {
-	      _cupsSetHTTPError(HTTP_STATUS_ERROR);
-	      DEBUG_puts("1ippReadIO: unable to allocate attribute.");
-	      _cupsBufferRelease((char *)buffer);
-	      return (IPP_STATE_ERROR);
-	    }
-
-	    DEBUG_printf(("2ippReadIO: name=\"%s\", ipp->current=%p, ipp->prev=%p", buffer, (void *)ipp->current, (void *)ipp->prev));
-
-	    value = attr->values;
-	  }
-	  else
-	  {
-	    attr  = NULL;
-	    value = NULL;
-	  }
-
-	  if ((*cb)(src, buffer, 2) < 2)
-	  {
-	    DEBUG_puts("1ippReadIO: unable to read value length.");
-	    _cupsBufferRelease((char *)buffer);
-	    return (IPP_STATE_ERROR);
-	  }
-
-	  n = (buffer[0] << 8) | buffer[1];
-          DEBUG_printf(("2ippReadIO: value length=%d", n));
-
-	  if (n >= IPP_BUF_SIZE)
-	  {
-	    _cupsSetError(IPP_STATUS_ERROR_INTERNAL,
-			  _("IPP value larger than 32767 bytes."), 1);
-	    DEBUG_printf(("1ippReadIO: bad value length %d.", n));
-	    _cupsBufferRelease((char *)buffer);
-	    return (IPP_STATE_ERROR);
-	  }
-
-	  switch (tag)
-	  {
-	    case IPP_TAG_INTEGER :
-	    case IPP_TAG_ENUM :
-		if (n != 4)
-		{
-		  if (tag == IPP_TAG_INTEGER)
-		    _cupsSetError(IPP_STATUS_ERROR_INTERNAL,
-				  _("IPP integer value not 4 bytes."), 1);
-		  else
-		    _cupsSetError(IPP_STATUS_ERROR_INTERNAL,
-				  _("IPP enum value not 4 bytes."), 1);
-		  DEBUG_printf(("1ippReadIO: bad integer value length %d.", n));
-		  _cupsBufferRelease((char *)buffer);
-		  return (IPP_STATE_ERROR);
-		}
-
-	        if ((*cb)(src, buffer, 4) < 4)
-		{
-	          DEBUG_puts("1ippReadIO: Unable to read integer value.");
-		  _cupsBufferRelease((char *)buffer);
-		  return (IPP_STATE_ERROR);
-		}
-
-		n = (((((buffer[0] << 8) | buffer[1]) << 8) | buffer[2]) << 8) |
-		    buffer[3];
-
-                if (attr->value_tag == IPP_TAG_RANGE)
-                  value->range.lower = value->range.upper = n;
-                else
-		  value->integer = n;
-	        break;
-
-	    case IPP_TAG_BOOLEAN :
-		if (n != 1)
-		{
-		  _cupsSetError(IPP_STATUS_ERROR_INTERNAL, _("IPP boolean value not 1 byte."),
-		                1);
-		  DEBUG_printf(("1ippReadIO: bad boolean value length %d.", n));
-		  _cupsBufferRelease((char *)buffer);
-		  return (IPP_STATE_ERROR);
-		}
-
-	        if ((*cb)(src, buffer, 1) < 1)
-		{
-	          DEBUG_puts("1ippReadIO: Unable to read boolean value.");
-		  _cupsBufferRelease((char *)buffer);
-		  return (IPP_STATE_ERROR);
-		}
-
-                value->boolean = (char)buffer[0];
-	        break;
-
-            case IPP_TAG_NOVALUE :
-	    case IPP_TAG_NOTSETTABLE :
-	    case IPP_TAG_DELETEATTR :
-	    case IPP_TAG_ADMINDEFINE :
-	       /*
-	        * These value types are not supposed to have values, however
-		* some vendors (Brother) do not implement IPP correctly and so
-		* we need to map non-empty values to text...
-		*/
-
-	        if (attr->value_tag == tag)
-		{
-		  if (n == 0)
-		    break;
-
-		  attr->value_tag = IPP_TAG_TEXT;
-		}
-
-	    case IPP_TAG_TEXT :
-	    case IPP_TAG_NAME :
-	    case IPP_TAG_KEYWORD :
-	    case IPP_TAG_URI :
-	    case IPP_TAG_URISCHEME :
-	    case IPP_TAG_CHARSET :
-	    case IPP_TAG_LANGUAGE :
-	    case IPP_TAG_MIMETYPE :
-	        if (n > 0)
-	        {
-		  if ((*cb)(src, buffer, (size_t)n) < n)
-		  {
-		    DEBUG_puts("1ippReadIO: unable to read string value.");
-		    _cupsBufferRelease((char *)buffer);
-		    return (IPP_STATE_ERROR);
-		  }
-		}
-
-		buffer[n] = '\0';
-		value->string.text = _cupsStrAlloc((char *)buffer);
-		DEBUG_printf(("2ippReadIO: value=\"%s\"", value->string.text));
-	        break;
-
-	    case IPP_TAG_DATE :
-		if (n != 11)
-		{
-		  _cupsSetError(IPP_STATUS_ERROR_INTERNAL, _("IPP date value not 11 bytes."), 1);
-		  DEBUG_printf(("1ippReadIO: bad date value length %d.", n));
-		  _cupsBufferRelease((char *)buffer);
-		  return (IPP_STATE_ERROR);
-		}
-
-	        if ((*cb)(src, value->date, 11) < 11)
-		{
-	          DEBUG_puts("1ippReadIO: Unable to read date value.");
-		  _cupsBufferRelease((char *)buffer);
-		  return (IPP_STATE_ERROR);
-		}
-	        break;
-
-	    case IPP_TAG_RESOLUTION :
-		if (n != 9)
-		{
-		  _cupsSetError(IPP_STATUS_ERROR_INTERNAL,
-		                _("IPP resolution value not 9 bytes."), 1);
-		  DEBUG_printf(("1ippReadIO: bad resolution value length %d.", n));
-		  _cupsBufferRelease((char *)buffer);
-		  return (IPP_STATE_ERROR);
-		}
-
-	        if ((*cb)(src, buffer, 9) < 9)
-		{
-	          DEBUG_puts("1ippReadIO: Unable to read resolution value.");
-		  _cupsBufferRelease((char *)buffer);
-		  return (IPP_STATE_ERROR);
-		}
-
-                value->resolution.xres =
-		    (((((buffer[0] << 8) | buffer[1]) << 8) | buffer[2]) << 8) |
-		    buffer[3];
-                value->resolution.yres =
-		    (((((buffer[4] << 8) | buffer[5]) << 8) | buffer[6]) << 8) |
-		    buffer[7];
-                value->resolution.units =
-		    (ipp_res_t)buffer[8];
-	        break;
-
-	    case IPP_TAG_RANGE :
-		if (n != 8)
-		{
-		  _cupsSetError(IPP_STATUS_ERROR_INTERNAL,
-		                _("IPP rangeOfInteger value not 8 bytes."), 1);
-		  DEBUG_printf(("1ippReadIO: bad rangeOfInteger value length "
-		                "%d.", n));
-		  _cupsBufferRelease((char *)buffer);
-		  return (IPP_STATE_ERROR);
-		}
-
-	        if ((*cb)(src, buffer, 8) < 8)
-		{
-	          DEBUG_puts("1ippReadIO: Unable to read range value.");
-		  _cupsBufferRelease((char *)buffer);
-		  return (IPP_STATE_ERROR);
-		}
-
-                value->range.lower =
-		    (((((buffer[0] << 8) | buffer[1]) << 8) | buffer[2]) << 8) |
-		    buffer[3];
-                value->range.upper =
-		    (((((buffer[4] << 8) | buffer[5]) << 8) | buffer[6]) << 8) |
-		    buffer[7];
-	        break;
-
-	    case IPP_TAG_TEXTLANG :
-	    case IPP_TAG_NAMELANG :
-	        if (n < 4)
-		{
-		  if (tag == IPP_TAG_TEXTLANG)
-		    _cupsSetError(IPP_STATUS_ERROR_INTERNAL,
-		                  _("IPP textWithLanguage value less than "
-		                    "minimum 4 bytes."), 1);
-		  else
-		    _cupsSetError(IPP_STATUS_ERROR_INTERNAL,
-		                  _("IPP nameWithLanguage value less than "
-		                    "minimum 4 bytes."), 1);
-		  DEBUG_printf(("1ippReadIO: bad stringWithLanguage value "
-		                "length %d.", n));
-		  _cupsBufferRelease((char *)buffer);
-		  return (IPP_STATE_ERROR);
-		}
-
-	        if ((*cb)(src, buffer, (size_t)n) < n)
-		{
-	          DEBUG_puts("1ippReadIO: Unable to read string w/language "
-		             "value.");
-		  _cupsBufferRelease((char *)buffer);
-		  return (IPP_STATE_ERROR);
-		}
-
-                bufptr = buffer;
-
-	       /*
-	        * text-with-language and name-with-language are composite
-		* values:
-		*
-		*    language-length
-		*    language
-		*    text-length
-		*    text
-		*/
-
-		n = (bufptr[0] << 8) | bufptr[1];
-
-		if ((bufptr + 2 + n) >= (buffer + IPP_BUF_SIZE) || n >= (int)sizeof(string))
-		{
-		  _cupsSetError(IPP_STATUS_ERROR_INTERNAL,
-		                _("IPP language length overflows value."), 1);
-		  DEBUG_printf(("1ippReadIO: bad language value length %d.",
-		                n));
-		  _cupsBufferRelease((char *)buffer);
-		  return (IPP_STATE_ERROR);
-		}
-		else if (n >= IPP_MAX_LANGUAGE)
-		{
-		  _cupsSetError(IPP_STATUS_ERROR_INTERNAL,
-		                _("IPP language length too large."), 1);
-		  DEBUG_printf(("1ippReadIO: bad language value length %d.",
-		                n));
-		  _cupsBufferRelease((char *)buffer);
-		  return (IPP_STATE_ERROR);
-		}
-
-		memcpy(string, bufptr + 2, (size_t)n);
-		string[n] = '\0';
-
-		value->string.language = _cupsStrAlloc((char *)string);
-
-                bufptr += 2 + n;
-		n = (bufptr[0] << 8) | bufptr[1];
-
-		if ((bufptr + 2 + n) >= (buffer + IPP_BUF_SIZE))
-		{
-		  _cupsSetError(IPP_STATUS_ERROR_INTERNAL,
-		                _("IPP string length overflows value."), 1);
-		  DEBUG_printf(("1ippReadIO: bad string value length %d.", n));
-		  _cupsBufferRelease((char *)buffer);
-		  return (IPP_STATE_ERROR);
-		}
-
-		bufptr[2 + n] = '\0';
-                value->string.text = _cupsStrAlloc((char *)bufptr + 2);
-	        break;
-
-            case IPP_TAG_BEGIN_COLLECTION :
-	       /*
-	        * Oh, boy, here comes a collection value, so read it...
-		*/
-
-                value->collection = ippNew();
-
-                if (n > 0)
-		{
-		  _cupsSetError(IPP_STATUS_ERROR_INTERNAL,
-		                _("IPP begCollection value not 0 bytes."), 1);
-	          DEBUG_puts("1ippReadIO: begCollection tag with value length "
-		             "> 0.");
-		  _cupsBufferRelease((char *)buffer);
-		  return (IPP_STATE_ERROR);
-		}
-
-		if (ippReadIO(src, cb, 1, ipp, value->collection) == IPP_STATE_ERROR)
-		{
-	          DEBUG_puts("1ippReadIO: Unable to read collection value.");
-		  _cupsBufferRelease((char *)buffer);
-		  return (IPP_STATE_ERROR);
-		}
-                break;
-
-            case IPP_TAG_END_COLLECTION :
-		_cupsBufferRelease((char *)buffer);
-
-                if (n > 0)
-		{
-		  _cupsSetError(IPP_STATUS_ERROR_INTERNAL,
-		                _("IPP endCollection value not 0 bytes."), 1);
-	          DEBUG_puts("1ippReadIO: endCollection tag with value length "
-		             "> 0.");
-		  return (IPP_STATE_ERROR);
-		}
-
-	        DEBUG_puts("1ippReadIO: endCollection tag...");
-		return (ipp->state = IPP_STATE_DATA);
-
-            case IPP_TAG_MEMBERNAME :
-	       /*
-	        * The value the name of the member in the collection, which
-		* we need to carry over...
-		*/
-
-                if (!attr)
-                {
-		  _cupsSetError(IPP_STATUS_ERROR_INTERNAL,
-		                _("IPP memberName with no attribute."), 1);
-	          DEBUG_puts("1ippReadIO: Member name without attribute.");
-		  _cupsBufferRelease((char *)buffer);
-		  return (IPP_STATE_ERROR);
-                }
-		else if (n == 0)
-		{
-		  _cupsSetError(IPP_STATUS_ERROR_INTERNAL,
-		                _("IPP memberName value is empty."), 1);
-	          DEBUG_puts("1ippReadIO: Empty member name value.");
-		  _cupsBufferRelease((char *)buffer);
-		  return (IPP_STATE_ERROR);
-		}
-		else if ((*cb)(src, buffer, (size_t)n) < n)
-		{
-	          DEBUG_puts("1ippReadIO: Unable to read member name value.");
-		  _cupsBufferRelease((char *)buffer);
-		  return (IPP_STATE_ERROR);
-		}
-
-		buffer[n] = '\0';
-		attr->name = _cupsStrAlloc((char *)buffer);
-
-               /*
-	        * Since collection members are encoded differently than
-		* regular attributes, make sure we don't start with an
-		* empty value...
-		*/
-
-                attr->num_values --;
-
-		DEBUG_printf(("2ippReadIO: member name=\"%s\"", attr->name));
-		break;
-
-            default : /* Other unsupported values */
-                if (tag == IPP_TAG_STRING && n > IPP_MAX_LENGTH)
-		{
-		  _cupsSetError(IPP_STATUS_ERROR_INTERNAL,
-		                _("IPP octetString length too large."), 1);
-		  DEBUG_printf(("1ippReadIO: bad octetString value length %d.",
-		                n));
-		  _cupsBufferRelease((char *)buffer);
-		  return (IPP_STATE_ERROR);
-		}
-
-                value->unknown.length = n;
-
-	        if (n > 0)
-		{
-		  if ((value->unknown.data = malloc((size_t)n)) == NULL)
-		  {
-		    _cupsSetHTTPError(HTTP_STATUS_ERROR);
-		    DEBUG_puts("1ippReadIO: Unable to allocate value");
-		    _cupsBufferRelease((char *)buffer);
-		    return (IPP_STATE_ERROR);
-		  }
-
-	          if ((*cb)(src, value->unknown.data, (size_t)n) < n)
-		  {
-	            DEBUG_puts("1ippReadIO: Unable to read unsupported value.");
-		    _cupsBufferRelease((char *)buffer);
-		    return (IPP_STATE_ERROR);
-		  }
-		}
-		else
-		  value->unknown.data = NULL;
-	        break;
-	  }
-
-	 /*
-          * If blocking is disabled, stop here...
-	  */
-
-          if (!blocking)
-	    break;
-	}
-        break;
-
-    case IPP_STATE_DATA :
-        break;
-
-    default :
-        break; /* anti-compiler-warning-code */
-  }
-
-  DEBUG_printf(("1ippReadIO: returning ipp->state=%d.", ipp->state));
-  _cupsBufferRelease((char *)buffer);
-
-  return (ipp->state);
-}
-
-
-/*
- * 'ippSetBoolean()' - Set a boolean value in an attribute.
- *
- * The @code ipp@ parameter refers to an IPP message previously created using
- * the @link ippNew@, @link ippNewRequest@, or  @link ippNewResponse@ functions.
- *
- * The @code attr@ parameter may be modified as a result of setting the value.
- *
- * The @code element@ parameter specifies which value to set from 0 to
- * @code ippGetCount(attr)@.
- *
- * @since CUPS 1.6/macOS 10.8@
- */
-
-int					/* O  - 1 on success, 0 on failure */
-ippSetBoolean(ipp_t           *ipp,	/* I  - IPP message */
-              ipp_attribute_t **attr,	/* IO - IPP attribute */
-              int             element,	/* I  - Value number (0-based) */
-              int             boolvalue)/* I  - Boolean value */
-{
-  _ipp_value_t	*value;			/* Current value */
-
-
- /*
-  * Range check input...
-  */
-
-  if (!ipp || !attr || !*attr || (*attr)->value_tag != IPP_TAG_BOOLEAN ||
-      element < 0 || element > (*attr)->num_values)
-    return (0);
-
- /*
-  * Set the value and return...
-  */
-
-  if ((value = ipp_set_value(ipp, attr, element)) != NULL)
-    value->boolean = (char)boolvalue;
-
-  return (value != NULL);
-}
-
-
-/*
- * 'ippSetCollection()' - Set a collection value in an attribute.
- *
- * The @code ipp@ parameter refers to an IPP message previously created using
- * the @link ippNew@, @link ippNewRequest@, or  @link ippNewResponse@ functions.
- *
- * The @code attr@ parameter may be modified as a result of setting the value.
- *
- * The @code element@ parameter specifies which value to set from 0 to
- * @code ippGetCount(attr)@.
- *
- * @since CUPS 1.6/macOS 10.8@
- */
-
-int					/* O  - 1 on success, 0 on failure */
-ippSetCollection(
-    ipp_t           *ipp,		/* I  - IPP message */
-    ipp_attribute_t **attr,		/* IO - IPP attribute */
-    int             element,		/* I  - Value number (0-based) */
-    ipp_t           *colvalue)		/* I  - Collection value */
-{
-  _ipp_value_t	*value;			/* Current value */
-
-
- /*
-  * Range check input...
-  */
-
-  if (!ipp || !attr || !*attr || (*attr)->value_tag != IPP_TAG_BEGIN_COLLECTION ||
-      element < 0 || element > (*attr)->num_values || !colvalue)
-    return (0);
-
- /*
-  * Set the value and return...
-  */
-
-  if ((value = ipp_set_value(ipp, attr, element)) != NULL)
-  {
-    if (value->collection)
-      ippDelete(value->collection);
-
-    value->collection = colvalue;
-    colvalue->use ++;
-  }
-
-  return (value != NULL);
-}
-
-
-/*
- * 'ippSetDate()' - Set a dateTime value in an attribute.
- *
- * The @code ipp@ parameter refers to an IPP message previously created using
- * the @link ippNew@, @link ippNewRequest@, or  @link ippNewResponse@ functions.
- *
- * The @code attr@ parameter may be modified as a result of setting the value.
- *
- * The @code element@ parameter specifies which value to set from 0 to
- * @code ippGetCount(attr)@.
- *
- * @since CUPS 1.6/macOS 10.8@
- */
-
-int					/* O  - 1 on success, 0 on failure */
-ippSetDate(ipp_t             *ipp,	/* I  - IPP message */
-           ipp_attribute_t   **attr,	/* IO - IPP attribute */
-           int               element,	/* I  - Value number (0-based) */
-           const ipp_uchar_t *datevalue)/* I  - dateTime value */
-{
-  _ipp_value_t	*value;			/* Current value */
-
-
- /*
-  * Range check input...
-  */
-
-  if (!ipp || !attr || !*attr || (*attr)->value_tag != IPP_TAG_DATE ||
-      element < 0 || element > (*attr)->num_values || !datevalue)
-    return (0);
-
- /*
-  * Set the value and return...
-  */
-
-  if ((value = ipp_set_value(ipp, attr, element)) != NULL)
-    memcpy(value->date, datevalue, sizeof(value->date));
-
-  return (value != NULL);
-}
-
-
-/*
- * 'ippSetGroupTag()' - Set the group tag of an attribute.
- *
- * The @code ipp@ parameter refers to an IPP message previously created using
- * the @link ippNew@, @link ippNewRequest@, or  @link ippNewResponse@ functions.
- *
- * The @code attr@ parameter may be modified as a result of setting the value.
- *
- * The @code group@ parameter specifies the IPP attribute group tag: none
- * (@code IPP_TAG_ZERO@, for member attributes), document (@code IPP_TAG_DOCUMENT@),
- * event notification (@code IPP_TAG_EVENT_NOTIFICATION@), operation
- * (@code IPP_TAG_OPERATION@), printer (@code IPP_TAG_PRINTER@), subscription
- * (@code IPP_TAG_SUBSCRIPTION@), or unsupported (@code IPP_TAG_UNSUPPORTED_GROUP@).
- *
- * @since CUPS 1.6/macOS 10.8@
- */
-
-int					/* O  - 1 on success, 0 on failure */
-ippSetGroupTag(
-    ipp_t           *ipp,		/* I  - IPP message */
-    ipp_attribute_t **attr,		/* IO - Attribute */
-    ipp_tag_t       group_tag)		/* I  - Group tag */
-{
- /*
-  * Range check input - group tag must be 0x01 to 0x0F, per RFC 8011...
-  */
-
-  if (!ipp || !attr || !*attr ||
-      group_tag < IPP_TAG_ZERO || group_tag == IPP_TAG_END ||
-      group_tag >= IPP_TAG_UNSUPPORTED_VALUE)
-    return (0);
-
- /*
-  * Set the group tag and return...
-  */
-
-  (*attr)->group_tag = group_tag;
-
-  return (1);
-}
-
-
-/*
- * 'ippSetInteger()' - Set an integer or enum value in an attribute.
- *
- * The @code ipp@ parameter refers to an IPP message previously created using
- * the @link ippNew@, @link ippNewRequest@, or  @link ippNewResponse@ functions.
- *
- * The @code attr@ parameter may be modified as a result of setting the value.
- *
- * The @code element@ parameter specifies which value to set from 0 to
- * @code ippGetCount(attr)@.
- *
- * @since CUPS 1.6/macOS 10.8@
- */
-
-int					/* O  - 1 on success, 0 on failure */
-ippSetInteger(ipp_t           *ipp,	/* I  - IPP message */
-              ipp_attribute_t **attr,	/* IO - IPP attribute */
-              int             element,	/* I  - Value number (0-based) */
-              int             intvalue)	/* I  - Integer/enum value */
-{
-  _ipp_value_t	*value;			/* Current value */
-
-
- /*
-  * Range check input...
-  */
-
-  if (!ipp || !attr || !*attr ||
-      ((*attr)->value_tag != IPP_TAG_INTEGER && (*attr)->value_tag != IPP_TAG_ENUM) ||
-      element < 0 || element > (*attr)->num_values)
-    return (0);
-
- /*
-  * Set the value and return...
-  */
-
-  if ((value = ipp_set_value(ipp, attr, element)) != NULL)
-    value->integer = intvalue;
-
-  return (value != NULL);
-}
-
-
-/*
- * 'ippSetName()' - Set the name of an attribute.
- *
- * The @code ipp@ parameter refers to an IPP message previously created using
- * the @link ippNew@, @link ippNewRequest@, or  @link ippNewResponse@ functions.
- *
- * The @code attr@ parameter may be modified as a result of setting the value.
- *
- * @since CUPS 1.6/macOS 10.8@
- */
-
-int					/* O  - 1 on success, 0 on failure */
-ippSetName(ipp_t           *ipp,	/* I  - IPP message */
-	   ipp_attribute_t **attr,	/* IO - IPP attribute */
-	   const char      *name)	/* I  - Attribute name */
-{
-  char	*temp;				/* Temporary name value */
-
-
- /*
-  * Range check input...
-  */
-
-  if (!ipp || !attr || !*attr)
-    return (0);
-
- /*
-  * Set the value and return...
-  */
-
-  if ((temp = _cupsStrAlloc(name)) != NULL)
-  {
-    if ((*attr)->name)
-      _cupsStrFree((*attr)->name);
-
-    (*attr)->name = temp;
-  }
-
-  return (temp != NULL);
-}
-
-
-/*
- * 'ippSetOctetString()' - Set an octetString value in an IPP attribute.
- *
- * The @code ipp@ parameter refers to an IPP message previously created using
- * the @link ippNew@, @link ippNewRequest@, or  @link ippNewResponse@ functions.
- *
- * The @code attr@ parameter may be modified as a result of setting the value.
- *
- * The @code element@ parameter specifies which value to set from 0 to
- * @code ippGetCount(attr)@.
- *
- * @since CUPS 1.7/macOS 10.9@
- */
-
-int					/* O  - 1 on success, 0 on failure */
-ippSetOctetString(
-    ipp_t           *ipp,		/* I  - IPP message */
-    ipp_attribute_t **attr,		/* IO - IPP attribute */
-    int             element,		/* I  - Value number (0-based) */
-    const void      *data,		/* I  - Pointer to octetString data */
-    int             datalen)		/* I  - Length of octetString data */
-{
-  _ipp_value_t	*value;			/* Current value */
-
-
- /*
-  * Range check input...
-  */
-
-  if (!ipp || !attr || !*attr || (*attr)->value_tag != IPP_TAG_STRING ||
-      element < 0 || element > (*attr)->num_values ||
-      datalen < 0 || datalen > IPP_MAX_LENGTH)
-    return (0);
-
- /*
-  * Set the value and return...
-  */
-
-  if ((value = ipp_set_value(ipp, attr, element)) != NULL)
-  {
-    if ((int)((*attr)->value_tag) & IPP_TAG_CUPS_CONST)
-    {
-     /*
-      * Just copy the pointer...
-      */
-
-      value->unknown.data   = (void *)data;
-      value->unknown.length = datalen;
-    }
-    else
-    {
-     /*
-      * Copy the data...
-      */
-
-      if (value->unknown.data)
-      {
-       /*
-	* Free previous data...
-	*/
-
-	free(value->unknown.data);
-
-	value->unknown.data   = NULL;
-        value->unknown.length = 0;
-      }
-
-      if (datalen > 0)
-      {
-	void	*temp;			/* Temporary data pointer */
-
-	if ((temp = malloc((size_t)datalen)) != NULL)
-	{
-	  memcpy(temp, data, (size_t)datalen);
-
-	  value->unknown.data   = temp;
-	  value->unknown.length = datalen;
-	}
-	else
-	  return (0);
-      }
-    }
-  }
-
-  return (value != NULL);
-}
-
-
-/*
- * 'ippSetOperation()' - Set the operation ID in an IPP request message.
- *
- * The @code ipp@ parameter refers to an IPP message previously created using
- * the @link ippNew@, @link ippNewRequest@, or  @link ippNewResponse@ functions.
- *
- * @since CUPS 1.6/macOS 10.8@
- */
-
-int					/* O - 1 on success, 0 on failure */
-ippSetOperation(ipp_t    *ipp,		/* I - IPP request message */
-                ipp_op_t op)		/* I - Operation ID */
-{
- /*
-  * Range check input...
-  */
-
-  if (!ipp)
-    return (0);
-
- /*
-  * Set the operation and return...
-  */
-
-  ipp->request.op.operation_id = op;
-
-  return (1);
-}
-
-
-/*
- * 'ippSetRange()' - Set a rangeOfInteger value in an attribute.
- *
- * The @code ipp@ parameter refers to an IPP message previously created using
- * the @link ippNew@, @link ippNewRequest@, or  @link ippNewResponse@ functions.
- *
- * The @code attr@ parameter may be modified as a result of setting the value.
- *
- * The @code element@ parameter specifies which value to set from 0 to
- * @code ippGetCount(attr)@.
- *
- * @since CUPS 1.6/macOS 10.8@
- */
-
-int					/* O  - 1 on success, 0 on failure */
-ippSetRange(ipp_t           *ipp,	/* I  - IPP message */
-            ipp_attribute_t **attr,	/* IO - IPP attribute */
-            int             element,	/* I  - Value number (0-based) */
-	    int             lowervalue,	/* I  - Lower bound for range */
-	    int             uppervalue)	/* I  - Upper bound for range */
-{
-  _ipp_value_t	*value;			/* Current value */
-
-
- /*
-  * Range check input...
-  */
-
-  if (!ipp || !attr || !*attr || (*attr)->value_tag != IPP_TAG_RANGE ||
-      element < 0 || element > (*attr)->num_values || lowervalue > uppervalue)
-    return (0);
-
- /*
-  * Set the value and return...
-  */
-
-  if ((value = ipp_set_value(ipp, attr, element)) != NULL)
-  {
-    value->range.lower = lowervalue;
-    value->range.upper = uppervalue;
-  }
-
-  return (value != NULL);
-}
-
-
-/*
- * 'ippSetRequestId()' - Set the request ID in an IPP message.
- *
- * The @code ipp@ parameter refers to an IPP message previously created using
- * the @link ippNew@, @link ippNewRequest@, or  @link ippNewResponse@ functions.
- *
- * The @code request_id@ parameter must be greater than 0.
- *
- * @since CUPS 1.6/macOS 10.8@
- */
-
-int					/* O - 1 on success, 0 on failure */
-ippSetRequestId(ipp_t *ipp,		/* I - IPP message */
-                int   request_id)	/* I - Request ID */
-{
- /*
-  * Range check input; not checking request_id values since ipptool wants to send
-  * invalid values for conformance testing and a bad request_id does not affect the
-  * encoding of a message...
-  */
-
-  if (!ipp)
-    return (0);
-
- /*
-  * Set the request ID and return...
-  */
-
-  ipp->request.any.request_id = request_id;
-
-  return (1);
-}
-
-
-/*
- * 'ippSetResolution()' - Set a resolution value in an attribute.
- *
- * The @code ipp@ parameter refers to an IPP message previously created using
- * the @link ippNew@, @link ippNewRequest@, or  @link ippNewResponse@ functions.
- *
- * The @code attr@ parameter may be modified as a result of setting the value.
- *
- * The @code element@ parameter specifies which value to set from 0 to
- * @code ippGetCount(attr)@.
- *
- * @since CUPS 1.6/macOS 10.8@
- */
-
-int					/* O  - 1 on success, 0 on failure */
-ippSetResolution(
-    ipp_t           *ipp,		/* I  - IPP message */
-    ipp_attribute_t **attr,		/* IO - IPP attribute */
-    int             element,		/* I  - Value number (0-based) */
-    ipp_res_t       unitsvalue,		/* I  - Resolution units */
-    int             xresvalue,		/* I  - Horizontal/cross feed resolution */
-    int             yresvalue)		/* I  - Vertical/feed resolution */
-{
-  _ipp_value_t	*value;			/* Current value */
-
-
- /*
-  * Range check input...
-  */
-
-  if (!ipp || !attr || !*attr || (*attr)->value_tag != IPP_TAG_RESOLUTION ||
-      element < 0 || element > (*attr)->num_values || xresvalue <= 0 || yresvalue <= 0 ||
-      unitsvalue < IPP_RES_PER_INCH || unitsvalue > IPP_RES_PER_CM)
-    return (0);
-
- /*
-  * Set the value and return...
-  */
-
-  if ((value = ipp_set_value(ipp, attr, element)) != NULL)
-  {
-    value->resolution.units = unitsvalue;
-    value->resolution.xres  = xresvalue;
-    value->resolution.yres  = yresvalue;
-  }
-
-  return (value != NULL);
-}
-
-
-/*
- * 'ippSetState()' - Set the current state of the IPP message.
- *
- * @since CUPS 1.6/macOS 10.8@
- */
-
-int					/* O - 1 on success, 0 on failure */
-ippSetState(ipp_t       *ipp,		/* I - IPP message */
-            ipp_state_t state)		/* I - IPP state value */
-{
- /*
-  * Range check input...
-  */
-
-  if (!ipp)
-    return (0);
-
- /*
-  * Set the state and return...
-  */
-
-  ipp->state   = state;
-  ipp->current = NULL;
-
-  return (1);
-}
-
-
-/*
- * 'ippSetStatusCode()' - Set the status code in an IPP response or event message.
- *
- * The @code ipp@ parameter refers to an IPP message previously created using
- * the @link ippNew@, @link ippNewRequest@, or  @link ippNewResponse@ functions.
- *
- * @since CUPS 1.6/macOS 10.8@
- */
-
-int					/* O - 1 on success, 0 on failure */
-ippSetStatusCode(ipp_t        *ipp,	/* I - IPP response or event message */
-                 ipp_status_t status)	/* I - Status code */
-{
- /*
-  * Range check input...
-  */
-
-  if (!ipp)
-    return (0);
-
- /*
-  * Set the status code and return...
-  */
-
-  ipp->request.status.status_code = status;
-
-  return (1);
-}
-
-
-/*
- * 'ippSetString()' - Set a string value in an attribute.
- *
- * The @code ipp@ parameter refers to an IPP message previously created using
- * the @link ippNew@, @link ippNewRequest@, or  @link ippNewResponse@ functions.
- *
- * The @code attr@ parameter may be modified as a result of setting the value.
- *
- * The @code element@ parameter specifies which value to set from 0 to
- * @code ippGetCount(attr)@.
- *
- * @since CUPS 1.6/macOS 10.8@
- */
-
-int					/* O  - 1 on success, 0 on failure */
-ippSetString(ipp_t           *ipp,	/* I  - IPP message */
-             ipp_attribute_t **attr,	/* IO - IPP attribute */
-             int             element,	/* I  - Value number (0-based) */
-	     const char      *strvalue)	/* I  - String value */
-{
-  char		*temp;			/* Temporary string */
-  _ipp_value_t	*value;			/* Current value */
-
-
- /*
-  * Range check input...
-  */
-
-  if (!ipp || !attr || !*attr ||
-      ((*attr)->value_tag != IPP_TAG_TEXTLANG &&
-      (*attr)->value_tag != IPP_TAG_NAMELANG &&
-       ((*attr)->value_tag < IPP_TAG_TEXT ||
-        (*attr)->value_tag > IPP_TAG_MIMETYPE)) ||
-      element < 0 || element > (*attr)->num_values || !strvalue)
-    return (0);
-
- /*
-  * Set the value and return...
-  */
-
-  if ((value = ipp_set_value(ipp, attr, element)) != NULL)
-  {
-    if (element > 0)
-      value->string.language = (*attr)->values[0].string.language;
-
-    if ((int)((*attr)->value_tag) & IPP_TAG_CUPS_CONST)
-      value->string.text = (char *)strvalue;
-    else if ((temp = _cupsStrAlloc(strvalue)) != NULL)
-    {
-      if (value->string.text)
-        _cupsStrFree(value->string.text);
-
-      value->string.text = temp;
-    }
-    else
-      return (0);
-  }
-
-  return (value != NULL);
-}
-
-
-/*
- * 'ippSetStringf()' - Set a formatted string value of an attribute.
- *
- * The @code ipp@ parameter refers to an IPP message previously created using
- * the @link ippNew@, @link ippNewRequest@, or  @link ippNewResponse@ functions.
- *
- * The @code attr@ parameter may be modified as a result of setting the value.
- *
- * The @code element@ parameter specifies which value to set from 0 to
- * @code ippGetCount(attr)@.
- *
- * The @code format@ parameter uses formatting characters compatible with the
- * printf family of standard functions.  Additional arguments follow it as
- * needed.  The formatted string is truncated as needed to the maximum length of
- * the corresponding value type.
- *
- * @since CUPS 1.7/macOS 10.9@
- */
-
-int					/* O  - 1 on success, 0 on failure */
-ippSetStringf(ipp_t           *ipp,	/* I  - IPP message */
-              ipp_attribute_t **attr,	/* IO - IPP attribute */
-              int             element,	/* I  - Value number (0-based) */
-	      const char      *format,	/* I  - Printf-style format string */
-	      ...)			/* I  - Additional arguments as needed */
-{
-  int		ret;			/* Return value */
-  va_list	ap;			/* Pointer to additional arguments */
-
-
-  va_start(ap, format);
-  ret = ippSetStringfv(ipp, attr, element, format, ap);
-  va_end(ap);
-
-  return (ret);
-}
-
-
-/*
- * 'ippSetStringf()' - Set a formatted string value of an attribute.
- *
- * The @code ipp@ parameter refers to an IPP message previously created using
- * the @link ippNew@, @link ippNewRequest@, or  @link ippNewResponse@ functions.
- *
- * The @code attr@ parameter may be modified as a result of setting the value.
- *
- * The @code element@ parameter specifies which value to set from 0 to
- * @code ippGetCount(attr)@.
- *
- * The @code format@ parameter uses formatting characters compatible with the
- * printf family of standard functions.  Additional arguments follow it as
- * needed.  The formatted string is truncated as needed to the maximum length of
- * the corresponding value type.
- *
- * @since CUPS 1.7/macOS 10.9@
- */
-
-int					/* O  - 1 on success, 0 on failure */
-ippSetStringfv(ipp_t           *ipp,	/* I  - IPP message */
-               ipp_attribute_t **attr,	/* IO - IPP attribute */
-               int             element,	/* I  - Value number (0-based) */
-	       const char      *format,	/* I  - Printf-style format string */
-	       va_list         ap)	/* I  - Pointer to additional arguments */
-{
-  ipp_tag_t	value_tag;		/* Value tag */
-  char		buffer[IPP_MAX_TEXT + 4];
-					/* Formatted text string */
-  ssize_t	bytes,			/* Length of formatted value */
-		max_bytes;		/* Maximum number of bytes for value */
-
-
- /*
-  * Range check input...
-  */
-
-  if (attr && *attr)
-    value_tag = (*attr)->value_tag & IPP_TAG_CUPS_MASK;
-  else
-    value_tag = IPP_TAG_ZERO;
-
-  if (!ipp || !attr || !*attr ||
-      (value_tag < IPP_TAG_TEXT && value_tag != IPP_TAG_TEXTLANG &&
-       value_tag != IPP_TAG_NAMELANG) || value_tag > IPP_TAG_MIMETYPE ||
-      !format)
-    return (0);
-
- /*
-  * Format the string...
-  */
-
-  if (!strcmp(format, "%s"))
-  {
-   /*
-    * Optimize the simple case...
-    */
-
-    const char *s = va_arg(ap, char *);
-
-    if (!s)
-      s = "(null)";
-
-    bytes = (ssize_t)strlen(s);
-    strlcpy(buffer, s, sizeof(buffer));
-  }
-  else
-  {
-   /*
-    * Do a full formatting of the message...
-    */
-
-    if ((bytes = vsnprintf(buffer, sizeof(buffer), format, ap)) < 0)
-      return (0);
-  }
-
- /*
-  * Limit the length of the string...
-  */
-
-  switch (value_tag)
-  {
-    default :
-    case IPP_TAG_TEXT :
-    case IPP_TAG_TEXTLANG :
-        max_bytes = IPP_MAX_TEXT;
-        break;
-
-    case IPP_TAG_NAME :
-    case IPP_TAG_NAMELANG :
-        max_bytes = IPP_MAX_NAME;
-        break;
-
-    case IPP_TAG_CHARSET :
-        max_bytes = IPP_MAX_CHARSET;
-        break;
-
-    case IPP_TAG_KEYWORD :
-        max_bytes = IPP_MAX_KEYWORD;
-        break;
-
-    case IPP_TAG_LANGUAGE :
-        max_bytes = IPP_MAX_LANGUAGE;
-        break;
-
-    case IPP_TAG_MIMETYPE :
-        max_bytes = IPP_MAX_MIMETYPE;
-        break;
-
-    case IPP_TAG_URI :
-        max_bytes = IPP_MAX_URI;
-        break;
-
-    case IPP_TAG_URISCHEME :
-        max_bytes = IPP_MAX_URISCHEME;
-        break;
-  }
-
-  if (bytes >= max_bytes)
-  {
-    char	*bufmax,		/* Buffer at max_bytes */
-		*bufptr;		/* Pointer into buffer */
-
-    bufptr = buffer + strlen(buffer) - 1;
-    bufmax = buffer + max_bytes - 1;
-
-    while (bufptr > bufmax)
-    {
-      if (*bufptr & 0x80)
-      {
-        while ((*bufptr & 0xc0) == 0x80 && bufptr > buffer)
-          bufptr --;
-      }
-
-      bufptr --;
-    }
-
-    *bufptr = '\0';
-  }
-
- /*
-  * Set the formatted string and return...
-  */
-
-  return (ippSetString(ipp, attr, element, buffer));
-}
-
-
-/*
- * 'ippSetValueTag()' - Set the value tag of an attribute.
- *
- * The @code ipp@ parameter refers to an IPP message previously created using
- * the @link ippNew@, @link ippNewRequest@, or  @link ippNewResponse@ functions.
- *
- * The @code attr@ parameter may be modified as a result of setting the value.
- *
- * Integer (@code IPP_TAG_INTEGER@) values can be promoted to rangeOfInteger
- * (@code IPP_TAG_RANGE@) values, the various string tags can be promoted to name
- * (@code IPP_TAG_NAME@) or nameWithLanguage (@code IPP_TAG_NAMELANG@) values, text
- * (@code IPP_TAG_TEXT@) values can be promoted to textWithLanguage
- * (@code IPP_TAG_TEXTLANG@) values, and all values can be demoted to the various
- * out-of-band value tags such as no-value (@code IPP_TAG_NOVALUE@). All other changes
- * will be rejected.
- *
- * Promoting a string attribute to nameWithLanguage or textWithLanguage adds the language
- * code in the "attributes-natural-language" attribute or, if not present, the language
- * code for the current locale.
- *
- * @since CUPS 1.6/macOS 10.8@
- */
-
-int					/* O  - 1 on success, 0 on failure */
-ippSetValueTag(
-    ipp_t          *ipp,		/* I  - IPP message */
-    ipp_attribute_t **attr,		/* IO - IPP attribute */
-    ipp_tag_t       value_tag)		/* I  - Value tag */
-{
-  int		i;			/* Looping var */
-  _ipp_value_t	*value;			/* Current value */
-  int		integer;		/* Current integer value */
-  cups_lang_t	*language;		/* Current language */
-  char		code[32];		/* Language code */
-  ipp_tag_t	temp_tag;		/* Temporary value tag */
-
-
- /*
-  * Range check input...
-  */
-
-  if (!ipp || !attr || !*attr)
-    return (0);
-
- /*
-  * If there is no change, return immediately...
-  */
-
-  if (value_tag == (*attr)->value_tag)
-    return (1);
-
- /*
-  * Otherwise implement changes as needed...
-  */
-
-  temp_tag = (ipp_tag_t)((int)((*attr)->value_tag) & IPP_TAG_CUPS_MASK);
-
-  switch (value_tag)
-  {
-    case IPP_TAG_UNSUPPORTED_VALUE :
-    case IPP_TAG_DEFAULT :
-    case IPP_TAG_UNKNOWN :
-    case IPP_TAG_NOVALUE :
-    case IPP_TAG_NOTSETTABLE :
-    case IPP_TAG_DELETEATTR :
-    case IPP_TAG_ADMINDEFINE :
-       /*
-        * Free any existing values...
-        */
-
-        if ((*attr)->num_values > 0)
-          ipp_free_values(*attr, 0, (*attr)->num_values);
-
-       /*
-        * Set out-of-band value...
-        */
-
-        (*attr)->value_tag = value_tag;
-        break;
-
-    case IPP_TAG_RANGE :
-        if (temp_tag != IPP_TAG_INTEGER)
-          return (0);
-
-        for (i = (*attr)->num_values, value = (*attr)->values;
-             i > 0;
-             i --, value ++)
-        {
-          integer            = value->integer;
-          value->range.lower = value->range.upper = integer;
-        }
-
-        (*attr)->value_tag = IPP_TAG_RANGE;
-        break;
-
-    case IPP_TAG_NAME :
-        if (temp_tag != IPP_TAG_KEYWORD)
-          return (0);
-
-        (*attr)->value_tag = (ipp_tag_t)(IPP_TAG_NAME | ((*attr)->value_tag & IPP_TAG_CUPS_CONST));
-        break;
-
-    case IPP_TAG_NAMELANG :
-    case IPP_TAG_TEXTLANG :
-        if (value_tag == IPP_TAG_NAMELANG && (temp_tag != IPP_TAG_NAME && temp_tag != IPP_TAG_KEYWORD))
-          return (0);
-
-        if (value_tag == IPP_TAG_TEXTLANG && temp_tag != IPP_TAG_TEXT)
-          return (0);
-
-        if (ipp->attrs && ipp->attrs->next && ipp->attrs->next->name &&
-            !strcmp(ipp->attrs->next->name, "attributes-natural-language"))
-        {
-         /*
-          * Use the language code from the IPP message...
-          */
-
-	  (*attr)->values[0].string.language =
-	      _cupsStrAlloc(ipp->attrs->next->values[0].string.text);
-        }
-        else
-        {
-         /*
-          * Otherwise, use the language code corresponding to the locale...
-          */
-
-	  language = cupsLangDefault();
-	  (*attr)->values[0].string.language = _cupsStrAlloc(ipp_lang_code(language->language,
-									code,
-									sizeof(code)));
-        }
-
-        for (i = (*attr)->num_values - 1, value = (*attr)->values + 1;
-             i > 0;
-             i --, value ++)
-          value->string.language = (*attr)->values[0].string.language;
-
-        if ((int)(*attr)->value_tag & IPP_TAG_CUPS_CONST)
-        {
-         /*
-          * Make copies of all values...
-          */
-
-	  for (i = (*attr)->num_values, value = (*attr)->values;
-	       i > 0;
-	       i --, value ++)
-	    value->string.text = _cupsStrAlloc(value->string.text);
-        }
-
-        (*attr)->value_tag = IPP_TAG_NAMELANG;
-        break;
-
-    case IPP_TAG_KEYWORD :
-        if (temp_tag == IPP_TAG_NAME || temp_tag == IPP_TAG_NAMELANG)
-          break;			/* Silently "allow" name -> keyword */
-
-    default :
-        return (0);
-  }
-
-  return (1);
-}
-
-
-/*
- * 'ippSetVersion()' - Set the version number in an IPP message.
- *
- * The @code ipp@ parameter refers to an IPP message previously created using
- * the @link ippNew@, @link ippNewRequest@, or  @link ippNewResponse@ functions.
- *
- * The valid version numbers are currently 1.0, 1.1, 2.0, 2.1, and 2.2.
- *
- * @since CUPS 1.6/macOS 10.8@
- */
-
-int					/* O - 1 on success, 0 on failure */
-ippSetVersion(ipp_t *ipp,		/* I - IPP message */
-              int   major,		/* I - Major version number (major.minor) */
-              int   minor)		/* I - Minor version number (major.minor) */
-{
- /*
-  * Range check input...
-  */
-
-  if (!ipp || major < 0 || minor < 0)
-    return (0);
-
- /*
-  * Set the version number...
-  */
-
-  ipp->request.any.version[0] = (ipp_uchar_t)major;
-  ipp->request.any.version[1] = (ipp_uchar_t)minor;
-
-  return (1);
-}
-
-
-/*
- * 'ippTimeToDate()' - Convert from time in seconds to RFC 2579 format.
- */
-
-const ipp_uchar_t *			/* O - RFC-2579 date/time data */
-ippTimeToDate(time_t t)			/* I - Time in seconds */
-{
-  struct tm	*unixdate;		/* UNIX unixdate/time info */
-  ipp_uchar_t	*date = _cupsGlobals()->ipp_date;
-					/* RFC-2579 date/time data */
-
-
- /*
-  * RFC-2579 date/time format is:
-  *
-  *    Byte(s)  Description
-  *    -------  -----------
-  *    0-1      Year (0 to 65535)
-  *    2        Month (1 to 12)
-  *    3        Day (1 to 31)
-  *    4        Hours (0 to 23)
-  *    5        Minutes (0 to 59)
-  *    6        Seconds (0 to 60, 60 = "leap second")
-  *    7        Deciseconds (0 to 9)
-  *    8        +/- UTC
-  *    9        UTC hours (0 to 11)
-  *    10       UTC minutes (0 to 59)
-  */
-
-  unixdate = gmtime(&t);
-  unixdate->tm_year += 1900;
-
-  date[0]  = (ipp_uchar_t)(unixdate->tm_year >> 8);
-  date[1]  = (ipp_uchar_t)(unixdate->tm_year);
-  date[2]  = (ipp_uchar_t)(unixdate->tm_mon + 1);
-  date[3]  = (ipp_uchar_t)unixdate->tm_mday;
-  date[4]  = (ipp_uchar_t)unixdate->tm_hour;
-  date[5]  = (ipp_uchar_t)unixdate->tm_min;
-  date[6]  = (ipp_uchar_t)unixdate->tm_sec;
-  date[7]  = 0;
-  date[8]  = '+';
-  date[9]  = 0;
-  date[10] = 0;
-
-  return (date);
-}
-
-
-/*
- * 'ippValidateAttribute()' - Validate the contents of an attribute.
- *
- * This function validates the contents of an attribute based on the name and
- * value tag.  1 is returned if the attribute is valid, 0 otherwise.  On
- * failure, @link cupsLastErrorString@ is set to a human-readable message.
- *
- * @since CUPS 1.7/macOS 10.9@
- */
-
-int					/* O - 1 if valid, 0 otherwise */
-ippValidateAttribute(
-    ipp_attribute_t *attr)		/* I - Attribute */
-{
-  int		i;			/* Looping var */
-  char		scheme[64],		/* Scheme from URI */
-		userpass[256],		/* Username/password from URI */
-		hostname[256],		/* Hostname from URI */
-		resource[1024];		/* Resource from URI */
-  int		port,			/* Port number from URI */
-		uri_status;		/* URI separation status */
-  const char	*ptr;			/* Pointer into string */
-  ipp_attribute_t *colattr;		/* Collection attribute */
-  regex_t	re;			/* Regular expression */
-  ipp_uchar_t	*date;			/* Current date value */
-  static const char * const uri_status_strings[] =
-  {					/* URI status strings */
-    "URI too large",
-    "Bad arguments to function",
-    "Bad resource in URI",
-    "Bad port number in URI",
-    "Bad hostname/address in URI",
-    "Bad username in URI",
-    "Bad scheme in URI",
-    "Bad/empty URI",
-    "OK",
-    "Missing scheme in URI",
-    "Unknown scheme in URI",
-    "Missing resource in URI"
-  };
-
-
- /*
-  * Skip separators.
-  */
-
-  if (!attr->name)
-    return (1);
-
- /*
-  * Validate the attribute name.
-  */
-
-  for (ptr = attr->name; *ptr; ptr ++)
-    if (!isalnum(*ptr & 255) && *ptr != '-' && *ptr != '.' && *ptr != '_')
-      break;
-
-  if (*ptr || ptr == attr->name)
-  {
-    ipp_set_error(IPP_STATUS_ERROR_BAD_REQUEST,
-                  _("\"%s\": Bad attribute name - invalid character "
-		    "(RFC 8011 section 5.1.4)."), attr->name);
-    return (0);
-  }
-
-  if ((ptr - attr->name) > 255)
-  {
-    ipp_set_error(IPP_STATUS_ERROR_BAD_REQUEST,
-                  _("\"%s\": Bad attribute name - bad length %d "
-		    "(RFC 8011 section 5.1.4)."), attr->name,
-		  (int)(ptr - attr->name));
-    return (0);
-  }
-
-  switch (attr->value_tag)
-  {
-    case IPP_TAG_INTEGER :
-        break;
-
-    case IPP_TAG_BOOLEAN :
-        for (i = 0; i < attr->num_values; i ++)
-	{
-	  if (attr->values[i].boolean != 0 &&
-	      attr->values[i].boolean != 1)
-	  {
-	    ipp_set_error(IPP_STATUS_ERROR_BAD_REQUEST,
-                          _("\"%s\": Bad boolen value %d "
-			    "(RFC 8011 section 5.1.21)."), attr->name,
-			  attr->values[i].boolean);
-	    return (0);
-	  }
-	}
-        break;
-
-    case IPP_TAG_ENUM :
-        for (i = 0; i < attr->num_values; i ++)
-	{
-	  if (attr->values[i].integer < 1)
-	  {
-	    ipp_set_error(IPP_STATUS_ERROR_BAD_REQUEST,
-			  _("\"%s\": Bad enum value %d - out of range "
-			    "(RFC 8011 section 5.1.5)."), attr->name,
-			    attr->values[i].integer);
-            return (0);
-	  }
-	}
-        break;
-
-    case IPP_TAG_STRING :
-        for (i = 0; i < attr->num_values; i ++)
-	{
-	  if (attr->values[i].unknown.length > IPP_MAX_OCTETSTRING)
-	  {
-	    ipp_set_error(IPP_STATUS_ERROR_BAD_REQUEST,
-			  _("\"%s\": Bad octetString value - bad length %d "
-			    "(RFC 8011 section 5.1.20)."), attr->name,
-			    attr->values[i].unknown.length);
-	    return (0);
-	  }
-	}
-        break;
-
-    case IPP_TAG_DATE :
-        for (i = 0; i < attr->num_values; i ++)
-	{
-	  date = attr->values[i].date;
-
-          if (date[2] < 1 || date[2] > 12)
-	  {
-	    ipp_set_error(IPP_STATUS_ERROR_BAD_REQUEST,
-			  _("\"%s\": Bad dateTime month %u "
-			    "(RFC 8011 section 5.1.15)."), attr->name, date[2]);
-	    return (0);
-	  }
-
-          if (date[3] < 1 || date[3] > 31)
-	  {
-	    ipp_set_error(IPP_STATUS_ERROR_BAD_REQUEST,
-			  _("\"%s\": Bad dateTime day %u "
-			    "(RFC 8011 section 5.1.15)."), attr->name, date[3]);
-	    return (0);
-	  }
-
-          if (date[4] > 23)
-	  {
-	    ipp_set_error(IPP_STATUS_ERROR_BAD_REQUEST,
-			  _("\"%s\": Bad dateTime hours %u "
-			    "(RFC 8011 section 5.1.15)."), attr->name, date[4]);
-	    return (0);
-	  }
-
-          if (date[5] > 59)
-	  {
-	    ipp_set_error(IPP_STATUS_ERROR_BAD_REQUEST,
-			  _("\"%s\": Bad dateTime minutes %u "
-			    "(RFC 8011 section 5.1.15)."), attr->name, date[5]);
-	    return (0);
-	  }
-
-          if (date[6] > 60)
-	  {
-	    ipp_set_error(IPP_STATUS_ERROR_BAD_REQUEST,
-			  _("\"%s\": Bad dateTime seconds %u "
-			    "(RFC 8011 section 5.1.15)."), attr->name, date[6]);
-	    return (0);
-	  }
-
-          if (date[7] > 9)
-	  {
-	    ipp_set_error(IPP_STATUS_ERROR_BAD_REQUEST,
-			  _("\"%s\": Bad dateTime deciseconds %u "
-			    "(RFC 8011 section 5.1.15)."), attr->name, date[7]);
-	    return (0);
-	  }
-
-          if (date[8] != '-' && date[8] != '+')
-	  {
-	    ipp_set_error(IPP_STATUS_ERROR_BAD_REQUEST,
-			  _("\"%s\": Bad dateTime UTC sign '%c' "
-			    "(RFC 8011 section 5.1.15)."), attr->name, date[8]);
-	    return (0);
-	  }
-
-          if (date[9] > 11)
-	  {
-	    ipp_set_error(IPP_STATUS_ERROR_BAD_REQUEST,
-			  _("\"%s\": Bad dateTime UTC hours %u "
-			    "(RFC 8011 section 5.1.15)."), attr->name, date[9]);
-	    return (0);
-	  }
-
-          if (date[10] > 59)
-	  {
-	    ipp_set_error(IPP_STATUS_ERROR_BAD_REQUEST,
-			  _("\"%s\": Bad dateTime UTC minutes %u "
-			    "(RFC 8011 section 5.1.15)."), attr->name, date[10]);
-	    return (0);
-	  }
-	}
-        break;
-
-    case IPP_TAG_RESOLUTION :
-        for (i = 0; i < attr->num_values; i ++)
-	{
-	  if (attr->values[i].resolution.xres <= 0)
-	  {
-	    ipp_set_error(IPP_STATUS_ERROR_BAD_REQUEST,
-			  _("\"%s\": Bad resolution value %dx%d%s - cross "
-			    "feed resolution must be positive "
-			    "(RFC 8011 section 5.1.16)."), attr->name,
-			  attr->values[i].resolution.xres,
-			  attr->values[i].resolution.yres,
-			  attr->values[i].resolution.units ==
-			      IPP_RES_PER_INCH ? "dpi" :
-			      attr->values[i].resolution.units ==
-				  IPP_RES_PER_CM ? "dpcm" : "unknown");
-	    return (0);
-	  }
-
-	  if (attr->values[i].resolution.yres <= 0)
-	  {
-	    ipp_set_error(IPP_STATUS_ERROR_BAD_REQUEST,
-			  _("\"%s\": Bad resolution value %dx%d%s - feed "
-			    "resolution must be positive "
-			    "(RFC 8011 section 5.1.16)."), attr->name,
-			  attr->values[i].resolution.xres,
-			  attr->values[i].resolution.yres,
-			  attr->values[i].resolution.units ==
-			      IPP_RES_PER_INCH ? "dpi" :
-			      attr->values[i].resolution.units ==
-				  IPP_RES_PER_CM ? "dpcm" : "unknown");
-            return (0);
-	  }
-
-	  if (attr->values[i].resolution.units != IPP_RES_PER_INCH &&
-	      attr->values[i].resolution.units != IPP_RES_PER_CM)
-	  {
-	    ipp_set_error(IPP_STATUS_ERROR_BAD_REQUEST,
-			  _("\"%s\": Bad resolution value %dx%d%s - bad "
-			    "units value (RFC 8011 section 5.1.16)."),
-			  attr->name, attr->values[i].resolution.xres,
-			  attr->values[i].resolution.yres,
-			  attr->values[i].resolution.units ==
-			      IPP_RES_PER_INCH ? "dpi" :
-			      attr->values[i].resolution.units ==
-				  IPP_RES_PER_CM ? "dpcm" : "unknown");
-	    return (0);
-	  }
-	}
-        break;
-
-    case IPP_TAG_RANGE :
-        for (i = 0; i < attr->num_values; i ++)
-	{
-	  if (attr->values[i].range.lower > attr->values[i].range.upper)
-	  {
-	    ipp_set_error(IPP_STATUS_ERROR_BAD_REQUEST,
-			  _("\"%s\": Bad rangeOfInteger value %d-%d - lower "
-			    "greater than upper (RFC 8011 section 5.1.14)."),
-			  attr->name, attr->values[i].range.lower,
-			  attr->values[i].range.upper);
-	    return (0);
-	  }
-	}
-        break;
-
-    case IPP_TAG_BEGIN_COLLECTION :
-        for (i = 0; i < attr->num_values; i ++)
-	{
-	  for (colattr = attr->values[i].collection->attrs;
-	       colattr;
-	       colattr = colattr->next)
-	  {
-	    if (!ippValidateAttribute(colattr))
-	      return (0);
-	  }
-	}
-        break;
-
-    case IPP_TAG_TEXT :
-    case IPP_TAG_TEXTLANG :
-        for (i = 0; i < attr->num_values; i ++)
-	{
-	  for (ptr = attr->values[i].string.text; *ptr; ptr ++)
-	  {
-	    if ((*ptr & 0xe0) == 0xc0)
-	    {
-	      ptr ++;
-	      if ((*ptr & 0xc0) != 0x80)
-	        break;
-	    }
-	    else if ((*ptr & 0xf0) == 0xe0)
-	    {
-	      ptr ++;
-	      if ((*ptr & 0xc0) != 0x80)
-	        break;
-	      ptr ++;
-	      if ((*ptr & 0xc0) != 0x80)
-	        break;
-	    }
-	    else if ((*ptr & 0xf8) == 0xf0)
-	    {
-	      ptr ++;
-	      if ((*ptr & 0xc0) != 0x80)
-	        break;
-	      ptr ++;
-	      if ((*ptr & 0xc0) != 0x80)
-	        break;
-	      ptr ++;
-	      if ((*ptr & 0xc0) != 0x80)
-	        break;
-	    }
-	    else if (*ptr & 0x80)
-	      break;
-	  }
-
-	  if (*ptr)
-	  {
-	    ipp_set_error(IPP_STATUS_ERROR_BAD_REQUEST,
-			  _("\"%s\": Bad text value \"%s\" - bad UTF-8 "
-			    "sequence (RFC 8011 section 5.1.2)."), attr->name,
-			  attr->values[i].string.text);
-	    return (0);
-	  }
-
-	  if ((ptr - attr->values[i].string.text) > (IPP_MAX_TEXT - 1))
-	  {
-	    ipp_set_error(IPP_STATUS_ERROR_BAD_REQUEST,
-			  _("\"%s\": Bad text value \"%s\" - bad length %d "
-			    "(RFC 8011 section 5.1.2)."), attr->name,
-			  attr->values[i].string.text,
-			  (int)(ptr - attr->values[i].string.text));
-	    return (0);
-	  }
-	}
-        break;
-
-    case IPP_TAG_NAME :
-    case IPP_TAG_NAMELANG :
-        for (i = 0; i < attr->num_values; i ++)
-	{
-	  for (ptr = attr->values[i].string.text; *ptr; ptr ++)
-	  {
-	    if ((*ptr & 0xe0) == 0xc0)
-	    {
-	      ptr ++;
-	      if ((*ptr & 0xc0) != 0x80)
-	        break;
-	    }
-	    else if ((*ptr & 0xf0) == 0xe0)
-	    {
-	      ptr ++;
-	      if ((*ptr & 0xc0) != 0x80)
-	        break;
-	      ptr ++;
-	      if ((*ptr & 0xc0) != 0x80)
-	        break;
-	    }
-	    else if ((*ptr & 0xf8) == 0xf0)
-	    {
-	      ptr ++;
-	      if ((*ptr & 0xc0) != 0x80)
-	        break;
-	      ptr ++;
-	      if ((*ptr & 0xc0) != 0x80)
-	        break;
-	      ptr ++;
-	      if ((*ptr & 0xc0) != 0x80)
-	        break;
-	    }
-	    else if (*ptr & 0x80)
-	      break;
-	  }
-
-	  if (*ptr)
-	  {
-	    ipp_set_error(IPP_STATUS_ERROR_BAD_REQUEST,
-			  _("\"%s\": Bad name value \"%s\" - bad UTF-8 "
-			    "sequence (RFC 8011 section 5.1.3)."), attr->name,
-			  attr->values[i].string.text);
-	    return (0);
-	  }
-
-	  if ((ptr - attr->values[i].string.text) > (IPP_MAX_NAME - 1))
-	  {
-	    ipp_set_error(IPP_STATUS_ERROR_BAD_REQUEST,
-			  _("\"%s\": Bad name value \"%s\" - bad length %d "
-			    "(RFC 8011 section 5.1.3)."), attr->name,
-			  attr->values[i].string.text,
-			  (int)(ptr - attr->values[i].string.text));
-	    return (0);
-	  }
-	}
-        break;
-
-    case IPP_TAG_KEYWORD :
-        for (i = 0; i < attr->num_values; i ++)
-	{
-	  for (ptr = attr->values[i].string.text; *ptr; ptr ++)
-	    if (!isalnum(*ptr & 255) && *ptr != '-' && *ptr != '.' &&
-	        *ptr != '_')
-	      break;
-
-	  if (*ptr || ptr == attr->values[i].string.text)
-	  {
-	    ipp_set_error(IPP_STATUS_ERROR_BAD_REQUEST,
-			  _("\"%s\": Bad keyword value \"%s\" - invalid "
-			    "character (RFC 8011 section 5.1.4)."),
-			  attr->name, attr->values[i].string.text);
-	    return (0);
-	  }
-
-	  if ((ptr - attr->values[i].string.text) > (IPP_MAX_KEYWORD - 1))
-	  {
-	    ipp_set_error(IPP_STATUS_ERROR_BAD_REQUEST,
-			  _("\"%s\": Bad keyword value \"%s\" - bad "
-			    "length %d (RFC 8011 section 5.1.4)."),
-			  attr->name, attr->values[i].string.text,
-			  (int)(ptr - attr->values[i].string.text));
-	    return (0);
-	  }
-	}
-        break;
-
-    case IPP_TAG_URI :
-        for (i = 0; i < attr->num_values; i ++)
-	{
-	  uri_status = httpSeparateURI(HTTP_URI_CODING_ALL,
-	                               attr->values[i].string.text,
-				       scheme, sizeof(scheme),
-				       userpass, sizeof(userpass),
-				       hostname, sizeof(hostname),
-				       &port, resource, sizeof(resource));
-
-	  if (uri_status < HTTP_URI_STATUS_OK)
-	  {
-	    ipp_set_error(IPP_STATUS_ERROR_BAD_REQUEST,
-			  _("\"%s\": Bad URI value \"%s\" - %s "
-			    "(RFC 8011 section 5.1.6)."), attr->name,
-			  attr->values[i].string.text,
-			  uri_status_strings[uri_status -
-					     HTTP_URI_STATUS_OVERFLOW]);
-	    return (0);
-	  }
-
-	  if (strlen(attr->values[i].string.text) > (IPP_MAX_URI - 1))
-	  {
-	    ipp_set_error(IPP_STATUS_ERROR_BAD_REQUEST,
-			  _("\"%s\": Bad URI value \"%s\" - bad length %d "
-			    "(RFC 8011 section 5.1.6)."), attr->name,
-			  attr->values[i].string.text,
-			  (int)strlen(attr->values[i].string.text));
-	  }
-	}
-        break;
-
-    case IPP_TAG_URISCHEME :
-        for (i = 0; i < attr->num_values; i ++)
-	{
-	  ptr = attr->values[i].string.text;
-	  if (islower(*ptr & 255))
-	  {
-	    for (ptr ++; *ptr; ptr ++)
-	      if (!islower(*ptr & 255) && !isdigit(*ptr & 255) &&
-	          *ptr != '+' && *ptr != '-' && *ptr != '.')
-                break;
-	  }
-
-	  if (*ptr || ptr == attr->values[i].string.text)
-	  {
-	    ipp_set_error(IPP_STATUS_ERROR_BAD_REQUEST,
-			  _("\"%s\": Bad uriScheme value \"%s\" - bad "
-			    "characters (RFC 8011 section 5.1.7)."),
-			  attr->name, attr->values[i].string.text);
-	    return (0);
-	  }
-
-	  if ((ptr - attr->values[i].string.text) > (IPP_MAX_URISCHEME - 1))
-	  {
-	    ipp_set_error(IPP_STATUS_ERROR_BAD_REQUEST,
-			  _("\"%s\": Bad uriScheme value \"%s\" - bad "
-			    "length %d (RFC 8011 section 5.1.7)."),
-			  attr->name, attr->values[i].string.text,
-			  (int)(ptr - attr->values[i].string.text));
-	    return (0);
-	  }
-	}
-        break;
-
-    case IPP_TAG_CHARSET :
-        for (i = 0; i < attr->num_values; i ++)
-	{
-	  for (ptr = attr->values[i].string.text; *ptr; ptr ++)
-	    if (!isprint(*ptr & 255) || isupper(*ptr & 255) ||
-	        isspace(*ptr & 255))
-	      break;
-
-	  if (*ptr || ptr == attr->values[i].string.text)
-	  {
-	    ipp_set_error(IPP_STATUS_ERROR_BAD_REQUEST,
-			  _("\"%s\": Bad charset value \"%s\" - bad "
-			    "characters (RFC 8011 section 5.1.8)."),
-			  attr->name, attr->values[i].string.text);
-	    return (0);
-	  }
-
-	  if ((ptr - attr->values[i].string.text) > (IPP_MAX_CHARSET - 1))
-	  {
-	    ipp_set_error(IPP_STATUS_ERROR_BAD_REQUEST,
-			  _("\"%s\": Bad charset value \"%s\" - bad "
-			    "length %d (RFC 8011 section 5.1.8)."),
-			  attr->name, attr->values[i].string.text,
-			  (int)(ptr - attr->values[i].string.text));
-	    return (0);
-	  }
-	}
-        break;
-
-    case IPP_TAG_LANGUAGE :
-       /*
-        * The following regular expression is derived from the ABNF for
-	* language tags in RFC 4646.  All I can say is that this is the
-	* easiest way to check the values...
-	*/
-
-        if ((i = regcomp(&re,
-			 "^("
-			 "(([a-z]{2,3}(-[a-z][a-z][a-z]){0,3})|[a-z]{4,8})"
-								/* language */
-			 "(-[a-z][a-z][a-z][a-z]){0,1}"		/* script */
-			 "(-([a-z][a-z]|[0-9][0-9][0-9])){0,1}"	/* region */
-			 "(-([a-z]{5,8}|[0-9][0-9][0-9]))*"	/* variant */
-			 "(-[a-wy-z](-[a-z0-9]{2,8})+)*"	/* extension */
-			 "(-x(-[a-z0-9]{1,8})+)*"		/* privateuse */
-			 "|"
-			 "x(-[a-z0-9]{1,8})+"			/* privateuse */
-			 "|"
-			 "[a-z]{1,3}(-[a-z][0-9]{2,8}){1,2}"	/* grandfathered */
-			 ")$",
-			 REG_NOSUB | REG_EXTENDED)) != 0)
-        {
-          char	temp[256];		/* Temporary error string */
-
-          regerror(i, &re, temp, sizeof(temp));
-	  ipp_set_error(IPP_STATUS_ERROR_INTERNAL,
-			_("Unable to compile naturalLanguage regular "
-			  "expression: %s."), temp);
-	  return (0);
-        }
-
-        for (i = 0; i < attr->num_values; i ++)
-	{
-	  if (regexec(&re, attr->values[i].string.text, 0, NULL, 0))
-	  {
-	    ipp_set_error(IPP_STATUS_ERROR_BAD_REQUEST,
-			  _("\"%s\": Bad naturalLanguage value \"%s\" - bad "
-			    "characters (RFC 8011 section 5.1.9)."),
-			  attr->name, attr->values[i].string.text);
-	    regfree(&re);
-	    return (0);
-	  }
-
-	  if (strlen(attr->values[i].string.text) > (IPP_MAX_LANGUAGE - 1))
-	  {
-	    ipp_set_error(IPP_STATUS_ERROR_BAD_REQUEST,
-			  _("\"%s\": Bad naturalLanguage value \"%s\" - bad "
-			    "length %d (RFC 8011 section 5.1.9)."),
-			  attr->name, attr->values[i].string.text,
-			  (int)strlen(attr->values[i].string.text));
-	    regfree(&re);
-	    return (0);
-	  }
-	}
-
-	regfree(&re);
-        break;
-
-    case IPP_TAG_MIMETYPE :
-       /*
-        * The following regular expression is derived from the ABNF for
-	* MIME media types in RFC 2045 and 4288.  All I can say is that this is
-	* the easiest way to check the values...
-	*/
-
-        if ((i = regcomp(&re,
-			 "^"
-			 "[-a-zA-Z0-9!#$&.+^_]{1,127}"		/* type-name */
-			 "/"
-			 "[-a-zA-Z0-9!#$&.+^_]{1,127}"		/* subtype-name */
-			 "(;[-a-zA-Z0-9!#$&.+^_]{1,127}="	/* parameter= */
-			 "([-a-zA-Z0-9!#$&.+^_]{1,127}|\"[^\"]*\"))*"
-			 					/* value */
-			 "$",
-			 REG_NOSUB | REG_EXTENDED)) != 0)
-        {
-          char	temp[256];		/* Temporary error string */
-
-          regerror(i, &re, temp, sizeof(temp));
-	  ipp_set_error(IPP_STATUS_ERROR_BAD_REQUEST,
-			_("Unable to compile mimeMediaType regular "
-			  "expression: %s."), temp);
-	  return (0);
-        }
-
-        for (i = 0; i < attr->num_values; i ++)
-	{
-	  if (regexec(&re, attr->values[i].string.text, 0, NULL, 0))
-	  {
-	    ipp_set_error(IPP_STATUS_ERROR_BAD_REQUEST,
-			  _("\"%s\": Bad mimeMediaType value \"%s\" - bad "
-			    "characters (RFC 8011 section 5.1.10)."),
-			  attr->name, attr->values[i].string.text);
-	    regfree(&re);
-	    return (0);
-	  }
-
-	  if (strlen(attr->values[i].string.text) > (IPP_MAX_MIMETYPE - 1))
-	  {
-	    ipp_set_error(IPP_STATUS_ERROR_BAD_REQUEST,
-			  _("\"%s\": Bad mimeMediaType value \"%s\" - bad "
-			    "length %d (RFC 8011 section 5.1.10)."),
-			  attr->name, attr->values[i].string.text,
-			  (int)strlen(attr->values[i].string.text));
-	    regfree(&re);
-	    return (0);
-	  }
-	}
-
-	regfree(&re);
-        break;
-
-    default :
-        break;
-  }
-
-  return (1);
-}
-
-
-/*
- * 'ippValidateAttributes()' - Validate all attributes in an IPP message.
- *
- * This function validates the contents of the IPP message, including each
- * attribute.  Like @link ippValidateAttribute@, @link cupsLastErrorString@ is
- * set to a human-readable message on failure.
- *
- * @since CUPS 1.7/macOS 10.9@
- */
-
-int					/* O - 1 if valid, 0 otherwise */
-ippValidateAttributes(ipp_t *ipp)	/* I - IPP message */
-{
-  ipp_attribute_t	*attr;		/* Current attribute */
-
-
-  if (!ipp)
-    return (1);
-
-  for (attr = ipp->attrs; attr; attr = attr->next)
-    if (!ippValidateAttribute(attr))
-      return (0);
-
-  return (1);
-}
-
-
-/*
- * 'ippWrite()' - Write data for an IPP message to a HTTP connection.
- */
-
-ipp_state_t				/* O - Current state */
-ippWrite(http_t *http,			/* I - HTTP connection */
-         ipp_t  *ipp)			/* I - IPP data */
-{
-  DEBUG_printf(("ippWrite(http=%p, ipp=%p)", (void *)http, (void *)ipp));
-
-  if (!http)
-    return (IPP_STATE_ERROR);
-
-  return (ippWriteIO(http, (ipp_iocb_t)httpWrite2, http->blocking, NULL, ipp));
-}
-
-
-/*
- * 'ippWriteFile()' - Write data for an IPP message to a file.
- *
- * @since CUPS 1.1.19/macOS 10.3@
- */
-
-ipp_state_t				/* O - Current state */
-ippWriteFile(int   fd,			/* I - HTTP data */
-             ipp_t *ipp)		/* I - IPP data */
-{
-  DEBUG_printf(("ippWriteFile(fd=%d, ipp=%p)", fd, (void *)ipp));
-
-  ipp->state = IPP_STATE_IDLE;
-
-  return (ippWriteIO(&fd, (ipp_iocb_t)ipp_write_file, 1, NULL, ipp));
-}
-
-
-/*
- * 'ippWriteIO()' - Write data for an IPP message.
- *
- * @since CUPS 1.2/macOS 10.5@
- */
-
-ipp_state_t				/* O - Current state */
-ippWriteIO(void       *dst,		/* I - Destination */
-           ipp_iocb_t cb,		/* I - Write callback function */
-	   int        blocking,		/* I - Use blocking IO? */
-	   ipp_t      *parent,		/* I - Parent IPP message */
-           ipp_t      *ipp)		/* I - IPP data */
-{
-  int			i;		/* Looping var */
-  int			n;		/* Length of data */
-  unsigned char		*buffer,	/* Data buffer */
-			*bufptr;	/* Pointer into buffer */
-  ipp_attribute_t	*attr;		/* Current attribute */
-  _ipp_value_t		*value;		/* Current value */
-
-
-  DEBUG_printf(("ippWriteIO(dst=%p, cb=%p, blocking=%d, parent=%p, ipp=%p)", (void *)dst, (void *)cb, blocking, (void *)parent, (void *)ipp));
-
-  if (!dst || !ipp)
-    return (IPP_STATE_ERROR);
-
-  if ((buffer = (unsigned char *)_cupsBufferGet(IPP_BUF_SIZE)) == NULL)
-  {
-    DEBUG_puts("1ippWriteIO: Unable to get write buffer");
-    return (IPP_STATE_ERROR);
-  }
-
-  switch (ipp->state)
-  {
-    case IPP_STATE_IDLE :
-        ipp->state ++; /* Avoid common problem... */
-
-    case IPP_STATE_HEADER :
-        if (parent == NULL)
-	{
-	 /*
-	  * Send the request header:
-	  *
-	  *                 Version = 2 bytes
-	  *   Operation/Status Code = 2 bytes
-	  *              Request ID = 4 bytes
-	  *                   Total = 8 bytes
-	  */
-
-          bufptr = buffer;
-
-	  *bufptr++ = ipp->request.any.version[0];
-	  *bufptr++ = ipp->request.any.version[1];
-	  *bufptr++ = (ipp_uchar_t)(ipp->request.any.op_status >> 8);
-	  *bufptr++ = (ipp_uchar_t)ipp->request.any.op_status;
-	  *bufptr++ = (ipp_uchar_t)(ipp->request.any.request_id >> 24);
-	  *bufptr++ = (ipp_uchar_t)(ipp->request.any.request_id >> 16);
-	  *bufptr++ = (ipp_uchar_t)(ipp->request.any.request_id >> 8);
-	  *bufptr++ = (ipp_uchar_t)ipp->request.any.request_id;
-
-	  DEBUG_printf(("2ippWriteIO: version=%d.%d", buffer[0], buffer[1]));
-	  DEBUG_printf(("2ippWriteIO: op_status=%04x",
-			ipp->request.any.op_status));
-	  DEBUG_printf(("2ippWriteIO: request_id=%d",
-			ipp->request.any.request_id));
-
-          if ((*cb)(dst, buffer, (size_t)(bufptr - buffer)) < 0)
-	  {
-	    DEBUG_puts("1ippWriteIO: Could not write IPP header...");
-	    _cupsBufferRelease((char *)buffer);
-	    return (IPP_STATE_ERROR);
-	  }
-	}
-
-       /*
-	* Reset the state engine to point to the first attribute
-	* in the request/response, with no current group.
-	*/
-
-        ipp->state   = IPP_STATE_ATTRIBUTE;
-	ipp->current = ipp->attrs;
-	ipp->curtag  = IPP_TAG_ZERO;
-
-	DEBUG_printf(("1ippWriteIO: ipp->current=%p", (void *)ipp->current));
-
-       /*
-        * If blocking is disabled, stop here...
-	*/
-
-        if (!blocking)
-	  break;
-
-    case IPP_STATE_ATTRIBUTE :
-        while (ipp->current != NULL)
-	{
-	 /*
-	  * Write this attribute...
-	  */
-
-	  bufptr = buffer;
-	  attr   = ipp->current;
-
-	  ipp->current = ipp->current->next;
-
-          if (!parent)
-	  {
-	    if (ipp->curtag != attr->group_tag)
-	    {
-	     /*
-	      * Send a group tag byte...
-	      */
-
-	      ipp->curtag = attr->group_tag;
-
-	      if (attr->group_tag == IPP_TAG_ZERO)
-		continue;
-
-	      DEBUG_printf(("2ippWriteIO: wrote group tag=%x(%s)",
-			    attr->group_tag, ippTagString(attr->group_tag)));
-	      *bufptr++ = (ipp_uchar_t)attr->group_tag;
-	    }
-	    else if (attr->group_tag == IPP_TAG_ZERO)
-	      continue;
-	  }
-
-	  DEBUG_printf(("1ippWriteIO: %s (%s%s)", attr->name,
-	                attr->num_values > 1 ? "1setOf " : "",
-			ippTagString(attr->value_tag)));
-
-         /*
-	  * Write the attribute tag and name.
-	  *
-	  * The attribute name length does not include the trailing nul
-	  * character in the source string.
-	  *
-	  * Collection values (parent != NULL) are written differently...
-	  */
-
-          if (parent == NULL)
-	  {
-           /*
-	    * Get the length of the attribute name, and make sure it won't
-	    * overflow the buffer...
-	    */
-
-            if ((n = (int)strlen(attr->name)) > (IPP_BUF_SIZE - 8))
-	    {
-	      DEBUG_printf(("1ippWriteIO: Attribute name too long (%d)", n));
-	      _cupsBufferRelease((char *)buffer);
-	      return (IPP_STATE_ERROR);
-	    }
-
-           /*
-	    * Write the value tag, name length, and name string...
-	    */
-
-            DEBUG_printf(("2ippWriteIO: writing value tag=%x(%s)",
-	                  attr->value_tag, ippTagString(attr->value_tag)));
-            DEBUG_printf(("2ippWriteIO: writing name=%d,\"%s\"", n,
-	                  attr->name));
-
-            if (attr->value_tag > 0xff)
-            {
-              *bufptr++ = IPP_TAG_EXTENSION;
-	      *bufptr++ = (ipp_uchar_t)(attr->value_tag >> 24);
-	      *bufptr++ = (ipp_uchar_t)(attr->value_tag >> 16);
-	      *bufptr++ = (ipp_uchar_t)(attr->value_tag >> 8);
-	      *bufptr++ = (ipp_uchar_t)attr->value_tag;
-            }
-            else
-	      *bufptr++ = (ipp_uchar_t)attr->value_tag;
-
-	    *bufptr++ = (ipp_uchar_t)(n >> 8);
-	    *bufptr++ = (ipp_uchar_t)n;
-	    memcpy(bufptr, attr->name, (size_t)n);
-	    bufptr += n;
-          }
-	  else
-	  {
-           /*
-	    * Get the length of the attribute name, and make sure it won't
-	    * overflow the buffer...
-	    */
-
-            if ((n = (int)strlen(attr->name)) > (IPP_BUF_SIZE - 12))
-	    {
-	      DEBUG_printf(("1ippWriteIO: Attribute name too long (%d)", n));
-	      _cupsBufferRelease((char *)buffer);
-	      return (IPP_STATE_ERROR);
-	    }
-
-           /*
-	    * Write the member name tag, name length, name string, value tag,
-	    * and empty name for the collection member attribute...
-	    */
-
-            DEBUG_printf(("2ippWriteIO: writing value tag=%x(memberName)",
-	                  IPP_TAG_MEMBERNAME));
-            DEBUG_printf(("2ippWriteIO: writing name=%d,\"%s\"", n,
-	                  attr->name));
-            DEBUG_printf(("2ippWriteIO: writing value tag=%x(%s)",
-	                  attr->value_tag, ippTagString(attr->value_tag)));
-            DEBUG_puts("2ippWriteIO: writing name=0,\"\"");
-
-            *bufptr++ = IPP_TAG_MEMBERNAME;
-	    *bufptr++ = 0;
-	    *bufptr++ = 0;
-	    *bufptr++ = (ipp_uchar_t)(n >> 8);
-	    *bufptr++ = (ipp_uchar_t)n;
-	    memcpy(bufptr, attr->name, (size_t)n);
-	    bufptr += n;
-
-            if (attr->value_tag > 0xff)
-            {
-              *bufptr++ = IPP_TAG_EXTENSION;
-	      *bufptr++ = (ipp_uchar_t)(attr->value_tag >> 24);
-	      *bufptr++ = (ipp_uchar_t)(attr->value_tag >> 16);
-	      *bufptr++ = (ipp_uchar_t)(attr->value_tag >> 8);
-	      *bufptr++ = (ipp_uchar_t)attr->value_tag;
-            }
-            else
-	      *bufptr++ = (ipp_uchar_t)attr->value_tag;
-
-            *bufptr++ = 0;
-            *bufptr++ = 0;
-	  }
-
-         /*
-	  * Now write the attribute value(s)...
-	  */
-
-	  switch (attr->value_tag & ~IPP_TAG_CUPS_CONST)
-	  {
-	    case IPP_TAG_UNSUPPORTED_VALUE :
-	    case IPP_TAG_DEFAULT :
-	    case IPP_TAG_UNKNOWN :
-	    case IPP_TAG_NOVALUE :
-	    case IPP_TAG_NOTSETTABLE :
-	    case IPP_TAG_DELETEATTR :
-	    case IPP_TAG_ADMINDEFINE :
-		*bufptr++ = 0;
-		*bufptr++ = 0;
-	        break;
-
-	    case IPP_TAG_INTEGER :
-	    case IPP_TAG_ENUM :
-	        for (i = 0, value = attr->values;
-		     i < attr->num_values;
-		     i ++, value ++)
-		{
-                  if ((IPP_BUF_SIZE - (bufptr - buffer)) < 9)
-		  {
-                    if ((*cb)(dst, buffer, (size_t)(bufptr - buffer)) < 0)
-	            {
-	              DEBUG_puts("1ippWriteIO: Could not write IPP "
-		                 "attribute...");
-		      _cupsBufferRelease((char *)buffer);
-	              return (IPP_STATE_ERROR);
-	            }
-
-		    bufptr = buffer;
-		  }
-
-		  if (i)
-		  {
-		   /*
-		    * Arrays and sets are done by sending additional
-		    * values with a zero-length name...
-		    */
-
-                    *bufptr++ = (ipp_uchar_t)attr->value_tag;
-		    *bufptr++ = 0;
-		    *bufptr++ = 0;
-		  }
-
-		 /*
-	          * Integers and enumerations are both 4-byte signed
-		  * (twos-complement) values.
-		  *
-		  * Put the 2-byte length and 4-byte value into the buffer...
-		  */
-
-	          *bufptr++ = 0;
-		  *bufptr++ = 4;
-		  *bufptr++ = (ipp_uchar_t)(value->integer >> 24);
-		  *bufptr++ = (ipp_uchar_t)(value->integer >> 16);
-		  *bufptr++ = (ipp_uchar_t)(value->integer >> 8);
-		  *bufptr++ = (ipp_uchar_t)value->integer;
-		}
-		break;
-
-	    case IPP_TAG_BOOLEAN :
-	        for (i = 0, value = attr->values;
-		     i < attr->num_values;
-		     i ++, value ++)
-		{
-                  if ((IPP_BUF_SIZE - (bufptr - buffer)) < 6)
-		  {
-                    if ((*cb)(dst, buffer, (size_t)(bufptr - buffer)) < 0)
-	            {
-	              DEBUG_puts("1ippWriteIO: Could not write IPP "
-		                 "attribute...");
-		      _cupsBufferRelease((char *)buffer);
-	              return (IPP_STATE_ERROR);
-	            }
-
-		    bufptr = buffer;
-		  }
-
-		  if (i)
-		  {
-		   /*
-		    * Arrays and sets are done by sending additional
-		    * values with a zero-length name...
-		    */
-
-                    *bufptr++ = (ipp_uchar_t)attr->value_tag;
-		    *bufptr++ = 0;
-		    *bufptr++ = 0;
-		  }
-
-                 /*
-		  * Boolean values are 1-byte; 0 = false, 1 = true.
-		  *
-		  * Put the 2-byte length and 1-byte value into the buffer...
-		  */
-
-	          *bufptr++ = 0;
-		  *bufptr++ = 1;
-		  *bufptr++ = (ipp_uchar_t)value->boolean;
-		}
-		break;
-
-	    case IPP_TAG_TEXT :
-	    case IPP_TAG_NAME :
-	    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, value = attr->values;
-		     i < attr->num_values;
-		     i ++, value ++)
-		{
-		  if (i)
-		  {
-		   /*
-		    * Arrays and sets are done by sending additional
-		    * values with a zero-length name...
-		    */
-
-        	    DEBUG_printf(("2ippWriteIO: writing value tag=%x(%s)",
-		                  attr->value_tag,
-				  ippTagString(attr->value_tag)));
-        	    DEBUG_printf(("2ippWriteIO: writing name=0,\"\""));
-
-                    if ((IPP_BUF_SIZE - (bufptr - buffer)) < 3)
-		    {
-                      if ((*cb)(dst, buffer, (size_t)(bufptr - buffer)) < 0)
-	              {
-	        	DEBUG_puts("1ippWriteIO: Could not write IPP "
-			           "attribute...");
-			_cupsBufferRelease((char *)buffer);
-	        	return (IPP_STATE_ERROR);
-	              }
-
-		      bufptr = buffer;
-		    }
-
-                    *bufptr++ = (ipp_uchar_t)attr->value_tag;
-		    *bufptr++ = 0;
-		    *bufptr++ = 0;
-		  }
-
-                  if (value->string.text != NULL)
-                    n = (int)strlen(value->string.text);
-		  else
-		    n = 0;
-
-                  if (n > (IPP_BUF_SIZE - 2))
-		  {
-		    DEBUG_printf(("1ippWriteIO: String too long (%d)", n));
-		    _cupsBufferRelease((char *)buffer);
-		    return (IPP_STATE_ERROR);
-		  }
-
-                  DEBUG_printf(("2ippWriteIO: writing string=%d,\"%s\"", n,
-		                value->string.text));
-
-                  if ((int)(IPP_BUF_SIZE - (bufptr - buffer)) < (n + 2))
-		  {
-                    if ((*cb)(dst, buffer, (size_t)(bufptr - buffer)) < 0)
-	            {
-	              DEBUG_puts("1ippWriteIO: Could not write IPP "
-		                 "attribute...");
-		      _cupsBufferRelease((char *)buffer);
-	              return (IPP_STATE_ERROR);
-	            }
-
-		    bufptr = buffer;
-		  }
-
-		 /*
-		  * All simple strings consist of the 2-byte length and
-		  * character data without the trailing nul normally found
-		  * in C strings.  Also, strings cannot be longer than IPP_MAX_LENGTH
-		  * bytes since the 2-byte length is a signed (twos-complement)
-		  * value.
-		  *
-		  * Put the 2-byte length and string characters in the buffer.
-		  */
-
-	          *bufptr++ = (ipp_uchar_t)(n >> 8);
-		  *bufptr++ = (ipp_uchar_t)n;
-
-		  if (n > 0)
-		  {
-		    memcpy(bufptr, value->string.text, (size_t)n);
-		    bufptr += n;
-		  }
-		}
-		break;
-
-	    case IPP_TAG_DATE :
-	        for (i = 0, value = attr->values;
-		     i < attr->num_values;
-		     i ++, value ++)
-		{
-                  if ((IPP_BUF_SIZE - (bufptr - buffer)) < 16)
-		  {
-                    if ((*cb)(dst, buffer, (size_t)(bufptr - buffer)) < 0)
-	            {
-	              DEBUG_puts("1ippWriteIO: Could not write IPP "
-		                 "attribute...");
-		      _cupsBufferRelease((char *)buffer);
-	              return (IPP_STATE_ERROR);
-	            }
-
-		    bufptr = buffer;
-		  }
-
-		  if (i)
-		  {
-		   /*
-		    * Arrays and sets are done by sending additional
-		    * values with a zero-length name...
-		    */
-
-                    *bufptr++ = (ipp_uchar_t)attr->value_tag;
-		    *bufptr++ = 0;
-		    *bufptr++ = 0;
-		  }
-
-                 /*
-		  * Date values consist of a 2-byte length and an
-		  * 11-byte date/time structure defined by RFC 1903.
-		  *
-		  * Put the 2-byte length and 11-byte date/time
-		  * structure in the buffer.
-		  */
-
-	          *bufptr++ = 0;
-		  *bufptr++ = 11;
-		  memcpy(bufptr, value->date, 11);
-		  bufptr += 11;
-		}
-		break;
-
-	    case IPP_TAG_RESOLUTION :
-	        for (i = 0, value = attr->values;
-		     i < attr->num_values;
-		     i ++, value ++)
-		{
-                  if ((IPP_BUF_SIZE - (bufptr - buffer)) < 14)
-		  {
-                    if ((*cb)(dst, buffer, (size_t)(bufptr - buffer)) < 0)
-	            {
-	              DEBUG_puts("1ippWriteIO: Could not write IPP "
-		                 "attribute...");
-		      _cupsBufferRelease((char *)buffer);
-		      return (IPP_STATE_ERROR);
-	            }
-
-		    bufptr = buffer;
-		  }
-
-		  if (i)
-		  {
-		   /*
-		    * Arrays and sets are done by sending additional
-		    * values with a zero-length name...
-		    */
-
-                    *bufptr++ = (ipp_uchar_t)attr->value_tag;
-		    *bufptr++ = 0;
-		    *bufptr++ = 0;
-		  }
-
-                 /*
-		  * Resolution values consist of a 2-byte length,
-		  * 4-byte horizontal resolution value, 4-byte vertical
-		  * resolution value, and a 1-byte units value.
-		  *
-		  * Put the 2-byte length and resolution value data
-		  * into the buffer.
-		  */
-
-	          *bufptr++ = 0;
-		  *bufptr++ = 9;
-		  *bufptr++ = (ipp_uchar_t)(value->resolution.xres >> 24);
-		  *bufptr++ = (ipp_uchar_t)(value->resolution.xres >> 16);
-		  *bufptr++ = (ipp_uchar_t)(value->resolution.xres >> 8);
-		  *bufptr++ = (ipp_uchar_t)value->resolution.xres;
-		  *bufptr++ = (ipp_uchar_t)(value->resolution.yres >> 24);
-		  *bufptr++ = (ipp_uchar_t)(value->resolution.yres >> 16);
-		  *bufptr++ = (ipp_uchar_t)(value->resolution.yres >> 8);
-		  *bufptr++ = (ipp_uchar_t)value->resolution.yres;
-		  *bufptr++ = (ipp_uchar_t)value->resolution.units;
-		}
-		break;
-
-	    case IPP_TAG_RANGE :
-	        for (i = 0, value = attr->values;
-		     i < attr->num_values;
-		     i ++, value ++)
-		{
-                  if ((IPP_BUF_SIZE - (bufptr - buffer)) < 13)
-		  {
-                    if ((*cb)(dst, buffer, (size_t)(bufptr - buffer)) < 0)
-	            {
-	              DEBUG_puts("1ippWriteIO: Could not write IPP "
-		                 "attribute...");
-		      _cupsBufferRelease((char *)buffer);
-	              return (IPP_STATE_ERROR);
-	            }
-
-		    bufptr = buffer;
-		  }
-
-		  if (i)
-		  {
-		   /*
-		    * Arrays and sets are done by sending additional
-		    * values with a zero-length name...
-		    */
-
-                    *bufptr++ = (ipp_uchar_t)attr->value_tag;
-		    *bufptr++ = 0;
-		    *bufptr++ = 0;
-		  }
-
-                 /*
-		  * Range values consist of a 2-byte length,
-		  * 4-byte lower value, and 4-byte upper value.
-		  *
-		  * Put the 2-byte length and range value data
-		  * into the buffer.
-		  */
-
-	          *bufptr++ = 0;
-		  *bufptr++ = 8;
-		  *bufptr++ = (ipp_uchar_t)(value->range.lower >> 24);
-		  *bufptr++ = (ipp_uchar_t)(value->range.lower >> 16);
-		  *bufptr++ = (ipp_uchar_t)(value->range.lower >> 8);
-		  *bufptr++ = (ipp_uchar_t)value->range.lower;
-		  *bufptr++ = (ipp_uchar_t)(value->range.upper >> 24);
-		  *bufptr++ = (ipp_uchar_t)(value->range.upper >> 16);
-		  *bufptr++ = (ipp_uchar_t)(value->range.upper >> 8);
-		  *bufptr++ = (ipp_uchar_t)value->range.upper;
-		}
-		break;
-
-	    case IPP_TAG_TEXTLANG :
-	    case IPP_TAG_NAMELANG :
-	        for (i = 0, value = attr->values;
-		     i < attr->num_values;
-		     i ++, value ++)
-		{
-		  if (i)
-		  {
-		   /*
-		    * Arrays and sets are done by sending additional
-		    * values with a zero-length name...
-		    */
-
-                    if ((IPP_BUF_SIZE - (bufptr - buffer)) < 3)
-		    {
-                      if ((*cb)(dst, buffer, (size_t)(bufptr - buffer)) < 0)
-	              {
-	        	DEBUG_puts("1ippWriteIO: Could not write IPP "
-		                   "attribute...");
-			_cupsBufferRelease((char *)buffer);
-	        	return (IPP_STATE_ERROR);
-	              }
-
-		      bufptr = buffer;
-		    }
-
-                    *bufptr++ = (ipp_uchar_t)attr->value_tag;
-		    *bufptr++ = 0;
-		    *bufptr++ = 0;
-		  }
-
-                 /*
-		  * textWithLanguage and nameWithLanguage values consist
-		  * of a 2-byte length for both strings and their
-		  * individual lengths, a 2-byte length for the
-		  * character string, the character string without the
-		  * trailing nul, a 2-byte length for the character
-		  * set string, and the character set string without
-		  * the trailing nul.
-		  */
-
-                  n = 4;
-
-		  if (value->string.language != NULL)
-                    n += (int)strlen(value->string.language);
-
-		  if (value->string.text != NULL)
-                    n += (int)strlen(value->string.text);
-
-                  if (n > (IPP_BUF_SIZE - 2))
-		  {
-		    DEBUG_printf(("1ippWriteIO: text/nameWithLanguage value "
-		                  "too long (%d)", n));
-		    _cupsBufferRelease((char *)buffer);
-		    return (IPP_STATE_ERROR);
-                  }
-
-                  if ((int)(IPP_BUF_SIZE - (bufptr - buffer)) < (n + 2))
-		  {
-                    if ((*cb)(dst, buffer, (size_t)(bufptr - buffer)) < 0)
-	            {
-	              DEBUG_puts("1ippWriteIO: Could not write IPP "
-		                 "attribute...");
-		      _cupsBufferRelease((char *)buffer);
-	              return (IPP_STATE_ERROR);
-	            }
-
-		    bufptr = buffer;
-		  }
-
-                 /* Length of entire value */
-	          *bufptr++ = (ipp_uchar_t)(n >> 8);
-		  *bufptr++ = (ipp_uchar_t)n;
-
-                 /* Length of language */
-		  if (value->string.language != NULL)
-		    n = (int)strlen(value->string.language);
-		  else
-		    n = 0;
-
-	          *bufptr++ = (ipp_uchar_t)(n >> 8);
-		  *bufptr++ = (ipp_uchar_t)n;
-
-                 /* Language */
-		  if (n > 0)
-		  {
-		    memcpy(bufptr, value->string.language, (size_t)n);
-		    bufptr += n;
-		  }
-
-                 /* Length of text */
-                  if (value->string.text != NULL)
-		    n = (int)strlen(value->string.text);
-		  else
-		    n = 0;
-
-	          *bufptr++ = (ipp_uchar_t)(n >> 8);
-		  *bufptr++ = (ipp_uchar_t)n;
-
-                 /* Text */
-		  if (n > 0)
-		  {
-		    memcpy(bufptr, value->string.text, (size_t)n);
-		    bufptr += n;
-		  }
-		}
-		break;
-
-            case IPP_TAG_BEGIN_COLLECTION :
-	        for (i = 0, value = attr->values;
-		     i < attr->num_values;
-		     i ++, value ++)
-		{
-		 /*
-		  * Collections are written with the begin-collection
-		  * tag first with a value of 0 length, followed by the
-		  * attributes in the collection, then the end-collection
-		  * value...
-		  */
-
-                  if ((IPP_BUF_SIZE - (bufptr - buffer)) < 5)
-		  {
-                    if ((*cb)(dst, buffer, (size_t)(bufptr - buffer)) < 0)
-	            {
-	              DEBUG_puts("1ippWriteIO: Could not write IPP "
-		                 "attribute...");
-		      _cupsBufferRelease((char *)buffer);
-	              return (IPP_STATE_ERROR);
-	            }
-
-		    bufptr = buffer;
-		  }
-
-		  if (i)
-		  {
-		   /*
-		    * Arrays and sets are done by sending additional
-		    * values with a zero-length name...
-		    */
-
-                    *bufptr++ = (ipp_uchar_t)attr->value_tag;
-		    *bufptr++ = 0;
-		    *bufptr++ = 0;
-		  }
-
-                 /*
-		  * Write a data length of 0 and flush the buffer...
-		  */
-
-	          *bufptr++ = 0;
-		  *bufptr++ = 0;
-
-                  if ((*cb)(dst, buffer, (size_t)(bufptr - buffer)) < 0)
-	          {
-	            DEBUG_puts("1ippWriteIO: Could not write IPP "
-		               "attribute...");
-		    _cupsBufferRelease((char *)buffer);
-	            return (IPP_STATE_ERROR);
-	          }
-
-		  bufptr = buffer;
-
-                 /*
-		  * Then write the collection attribute...
-		  */
-
-                  value->collection->state = IPP_STATE_IDLE;
-
-		  if (ippWriteIO(dst, cb, 1, ipp,
-		                 value->collection) == IPP_STATE_ERROR)
-		  {
-		    DEBUG_puts("1ippWriteIO: Unable to write collection value");
-		    _cupsBufferRelease((char *)buffer);
-		    return (IPP_STATE_ERROR);
-		  }
-		}
-		break;
-
-            default :
-	        for (i = 0, value = attr->values;
-		     i < attr->num_values;
-		     i ++, value ++)
-		{
-		  if (i)
-		  {
-		   /*
-		    * Arrays and sets are done by sending additional
-		    * values with a zero-length name...
-		    */
-
-                    if ((IPP_BUF_SIZE - (bufptr - buffer)) < 3)
-		    {
-                      if ((*cb)(dst, buffer, (size_t)(bufptr - buffer)) < 0)
-	              {
-	        	DEBUG_puts("1ippWriteIO: Could not write IPP "
-		                   "attribute...");
-			_cupsBufferRelease((char *)buffer);
-	        	return (IPP_STATE_ERROR);
-	              }
-
-		      bufptr = buffer;
-		    }
-
-                    *bufptr++ = (ipp_uchar_t)attr->value_tag;
-		    *bufptr++ = 0;
-		    *bufptr++ = 0;
-		  }
-
-                 /*
-		  * An unknown value might some new value that a
-		  * vendor has come up with. It consists of a
-		  * 2-byte length and the bytes in the unknown
-		  * value buffer.
-		  */
-
-                  n = value->unknown.length;
-
-                  if (n > (IPP_BUF_SIZE - 2))
-		  {
-		    DEBUG_printf(("1ippWriteIO: Data length too long (%d)",
-		                  n));
-		    _cupsBufferRelease((char *)buffer);
-		    return (IPP_STATE_ERROR);
-		  }
-
-                  if ((int)(IPP_BUF_SIZE - (bufptr - buffer)) < (n + 2))
-		  {
-                    if ((*cb)(dst, buffer, (size_t)(bufptr - buffer)) < 0)
-	            {
-	              DEBUG_puts("1ippWriteIO: Could not write IPP "
-		                 "attribute...");
-		      _cupsBufferRelease((char *)buffer);
-	              return (IPP_STATE_ERROR);
-	            }
-
-		    bufptr = buffer;
-		  }
-
-                 /* Length of unknown value */
-	          *bufptr++ = (ipp_uchar_t)(n >> 8);
-		  *bufptr++ = (ipp_uchar_t)n;
-
-                 /* Value */
-		  if (n > 0)
-		  {
-		    memcpy(bufptr, value->unknown.data, (size_t)n);
-		    bufptr += n;
-		  }
-		}
-		break;
-	  }
-
-         /*
-	  * Write the data out...
-	  */
-
-	  if (bufptr > buffer)
-	  {
-	    if ((*cb)(dst, buffer, (size_t)(bufptr - buffer)) < 0)
-	    {
-	      DEBUG_puts("1ippWriteIO: Could not write IPP attribute...");
-	      _cupsBufferRelease((char *)buffer);
-	      return (IPP_STATE_ERROR);
-	    }
-
-	    DEBUG_printf(("2ippWriteIO: wrote %d bytes",
-			  (int)(bufptr - buffer)));
-	  }
-
-	 /*
-          * If blocking is disabled and we aren't at the end of the attribute
-          * list, stop here...
-	  */
-
-          if (!blocking && ipp->current)
-	    break;
-	}
-
-	if (ipp->current == NULL)
-	{
-         /*
-	  * Done with all of the attributes; add the end-of-attributes
-	  * tag or end-collection attribute...
-	  */
-
-          if (parent == NULL)
-	  {
-            buffer[0] = IPP_TAG_END;
-	    n         = 1;
-	  }
-	  else
-	  {
-            buffer[0] = IPP_TAG_END_COLLECTION;
-	    buffer[1] = 0; /* empty name */
-	    buffer[2] = 0;
-	    buffer[3] = 0; /* empty value */
-	    buffer[4] = 0;
-	    n         = 5;
-	  }
-
-	  if ((*cb)(dst, buffer, (size_t)n) < 0)
-	  {
-	    DEBUG_puts("1ippWriteIO: Could not write IPP end-tag...");
-	    _cupsBufferRelease((char *)buffer);
-	    return (IPP_STATE_ERROR);
-	  }
-
-	  ipp->state = IPP_STATE_DATA;
-	}
-        break;
-
-    case IPP_STATE_DATA :
-        break;
-
-    default :
-        break; /* anti-compiler-warning-code */
-  }
-
-  _cupsBufferRelease((char *)buffer);
-
-  return (ipp->state);
-}
-
-
-/*
- * 'ipp_add_attr()' - Add a new attribute to the message.
- */
-
-static ipp_attribute_t *		/* O - New attribute */
-ipp_add_attr(ipp_t      *ipp,		/* I - IPP message */
-             const char *name,		/* I - Attribute name or NULL */
-             ipp_tag_t  group_tag,	/* I - Group tag or IPP_TAG_ZERO */
-             ipp_tag_t  value_tag,	/* I - Value tag or IPP_TAG_ZERO */
-             int        num_values)	/* I - Number of values */
-{
-  int			alloc_values;	/* Number of values to allocate */
-  ipp_attribute_t	*attr;		/* New attribute */
-
-
-  DEBUG_printf(("4ipp_add_attr(ipp=%p, name=\"%s\", group_tag=0x%x, value_tag=0x%x, num_values=%d)", (void *)ipp, name, group_tag, value_tag, num_values));
-
- /*
-  * Range check input...
-  */
-
-  if (!ipp || num_values < 0)
-    return (NULL);
-
- /*
-  * Allocate memory, rounding the allocation up as needed...
-  */
-
-  if (num_values <= 1)
-    alloc_values = 1;
-  else
-    alloc_values = (num_values + IPP_MAX_VALUES - 1) & ~(IPP_MAX_VALUES - 1);
-
-  attr = calloc(sizeof(ipp_attribute_t) +
-                (size_t)(alloc_values - 1) * sizeof(_ipp_value_t), 1);
-
-  if (attr)
-  {
-   /*
-    * Initialize attribute...
-    */
-
-    DEBUG_printf(("4debug_alloc: %p %s %s%s (%d values)", (void *)attr, name, num_values > 1 ? "1setOf " : "", ippTagString(value_tag), num_values));
-
-    if (name)
-      attr->name = _cupsStrAlloc(name);
-
-    attr->group_tag  = group_tag;
-    attr->value_tag  = value_tag;
-    attr->num_values = num_values;
-
-   /*
-    * Add it to the end of the linked list...
-    */
-
-    if (ipp->last)
-      ipp->last->next = attr;
-    else
-      ipp->attrs = attr;
-
-    ipp->prev = ipp->last;
-    ipp->last = ipp->current = attr;
-  }
-
-  DEBUG_printf(("5ipp_add_attr: Returning %p", (void *)attr));
-
-  return (attr);
-}
-
-
-/*
- * 'ipp_free_values()' - Free attribute values.
- */
-
-static void
-ipp_free_values(ipp_attribute_t *attr,	/* I - Attribute to free values from */
-                int             element,/* I - First value to free */
-                int             count)	/* I - Number of values to free */
-{
-  int		i;			/* Looping var */
-  _ipp_value_t	*value;			/* Current value */
-
-
-  DEBUG_printf(("4ipp_free_values(attr=%p, element=%d, count=%d)", (void *)attr, element, count));
-
-  if (!(attr->value_tag & IPP_TAG_CUPS_CONST))
-  {
-   /*
-    * Free values as needed...
-    */
-
-    switch (attr->value_tag)
-    {
-      case IPP_TAG_TEXTLANG :
-      case IPP_TAG_NAMELANG :
-	  if (element == 0 && count == attr->num_values &&
-	      attr->values[0].string.language)
-	  {
-	    _cupsStrFree(attr->values[0].string.language);
-	    attr->values[0].string.language = NULL;
-	  }
-	  /* Fall through to other string values */
-
-      case IPP_TAG_TEXT :
-      case IPP_TAG_NAME :
-      case IPP_TAG_RESERVED_STRING :
-      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 = count, value = attr->values + element;
-	       i > 0;
-	       i --, value ++)
-	  {
-	    _cupsStrFree(value->string.text);
-	    value->string.text = NULL;
-	  }
-	  break;
-
-      case IPP_TAG_DEFAULT :
-      case IPP_TAG_UNKNOWN :
-      case IPP_TAG_NOVALUE :
-      case IPP_TAG_NOTSETTABLE :
-      case IPP_TAG_DELETEATTR :
-      case IPP_TAG_ADMINDEFINE :
-      case IPP_TAG_INTEGER :
-      case IPP_TAG_ENUM :
-      case IPP_TAG_BOOLEAN :
-      case IPP_TAG_DATE :
-      case IPP_TAG_RESOLUTION :
-      case IPP_TAG_RANGE :
-	  break;
-
-      case IPP_TAG_BEGIN_COLLECTION :
-	  for (i = count, value = attr->values + element;
-	       i > 0;
-	       i --, value ++)
-	  {
-	    ippDelete(value->collection);
-	    value->collection = NULL;
-	  }
-	  break;
-
-      case IPP_TAG_STRING :
-      default :
-	  for (i = count, value = attr->values + element;
-	       i > 0;
-	       i --, value ++)
-	  {
-	    if (value->unknown.data)
-	    {
-	      free(value->unknown.data);
-	      value->unknown.data = NULL;
-	    }
-	  }
-	  break;
-    }
-  }
-
- /*
-  * If we are not freeing values from the end, move the remaining values up...
-  */
-
-  if ((element + count) < attr->num_values)
-    memmove(attr->values + element, attr->values + element + count,
-            (size_t)(attr->num_values - count - element) * sizeof(_ipp_value_t));
-
-  attr->num_values -= count;
-}
-
-
-/*
- * 'ipp_get_code()' - Convert a C locale/charset name into an IPP language/charset code.
- *
- * This typically converts strings of the form "ll_CC", "ll-REGION", and "CHARSET_NUMBER"
- * to "ll-cc", "ll-region", and "charset-number", respectively.
- */
-
-static char *				/* O - Language code string */
-ipp_get_code(const char *value,		/* I - Locale/charset string */
-             char       *buffer,	/* I - String buffer */
-             size_t     bufsize)	/* I - Size of string buffer */
-{
-  char	*bufptr,			/* Pointer into buffer */
-	*bufend;			/* End of buffer */
-
-
- /*
-  * Convert values to lowercase and change _ to - as needed...
-  */
-
-  for (bufptr = buffer, bufend = buffer + bufsize - 1;
-       *value && bufptr < bufend;
-       value ++)
-    if (*value == '_')
-      *bufptr++ = '-';
-    else
-      *bufptr++ = (char)_cups_tolower(*value);
-
-  *bufptr = '\0';
-
- /*
-  * Return the converted string...
-  */
-
-  return (buffer);
-}
-
-
-/*
- * 'ipp_lang_code()' - Convert a C locale name into an IPP language code.
- *
- * This typically converts strings of the form "ll_CC" and "ll-REGION" to "ll-cc" and
- * "ll-region", respectively.  It also converts the "C" (POSIX) locale to "en".
- */
-
-static char *				/* O - Language code string */
-ipp_lang_code(const char *locale,	/* I - Locale string */
-              char       *buffer,	/* I - String buffer */
-              size_t     bufsize)	/* I - Size of string buffer */
-{
- /*
-  * Map POSIX ("C") locale to generic English, otherwise convert the locale string as-is.
-  */
-
-  if (!_cups_strcasecmp(locale, "c"))
-  {
-    strlcpy(buffer, "en", bufsize);
-    return (buffer);
-  }
-  else
-    return (ipp_get_code(locale, buffer, bufsize));
-}
-
-
-/*
- * 'ipp_length()' - Compute the length of an IPP message or collection value.
- */
-
-static size_t				/* O - Size of IPP message */
-ipp_length(ipp_t *ipp,			/* I - IPP message or collection */
-           int   collection)		/* I - 1 if a collection, 0 otherwise */
-{
-  int			i;		/* Looping var */
-  size_t		bytes;		/* Number of bytes */
-  ipp_attribute_t	*attr;		/* Current attribute */
-  ipp_tag_t		group;		/* Current group */
-  _ipp_value_t		*value;		/* Current value */
-
-
-  DEBUG_printf(("3ipp_length(ipp=%p, collection=%d)", (void *)ipp, collection));
-
-  if (!ipp)
-  {
-    DEBUG_puts("4ipp_length: Returning 0 bytes");
-    return (0);
-  }
-
- /*
-  * Start with 8 bytes for the IPP message header...
-  */
-
-  bytes = collection ? 0 : 8;
-
- /*
-  * Then add the lengths of each attribute...
-  */
-
-  group = IPP_TAG_ZERO;
-
-  for (attr = ipp->attrs; attr != NULL; attr = attr->next)
-  {
-    if (attr->group_tag != group && !collection)
-    {
-      group = attr->group_tag;
-      if (group == IPP_TAG_ZERO)
-	continue;
-
-      bytes ++;	/* Group tag */
-    }
-
-    if (!attr->name)
-      continue;
-
-    DEBUG_printf(("5ipp_length: attr->name=\"%s\", attr->num_values=%d, "
-                  "bytes=" CUPS_LLFMT, attr->name, attr->num_values, CUPS_LLCAST bytes));
-
-    if ((attr->value_tag & ~IPP_TAG_CUPS_CONST) < IPP_TAG_EXTENSION)
-      bytes += (size_t)attr->num_values;/* Value tag for each value */
-    else
-      bytes += (size_t)(5 * attr->num_values);
-					/* Value tag for each value */
-    bytes += (size_t)(2 * attr->num_values);
-					/* Name lengths */
-    bytes += strlen(attr->name);	/* Name */
-    bytes += (size_t)(2 * attr->num_values);
-					/* Value lengths */
-
-    if (collection)
-      bytes += 5;			/* Add membername overhead */
-
-    switch (attr->value_tag & ~IPP_TAG_CUPS_CONST)
-    {
-      case IPP_TAG_UNSUPPORTED_VALUE :
-      case IPP_TAG_DEFAULT :
-      case IPP_TAG_UNKNOWN :
-      case IPP_TAG_NOVALUE :
-      case IPP_TAG_NOTSETTABLE :
-      case IPP_TAG_DELETEATTR :
-      case IPP_TAG_ADMINDEFINE :
-          break;
-
-      case IPP_TAG_INTEGER :
-      case IPP_TAG_ENUM :
-          bytes += (size_t)(4 * attr->num_values);
-	  break;
-
-      case IPP_TAG_BOOLEAN :
-          bytes += (size_t)attr->num_values;
-	  break;
-
-      case IPP_TAG_TEXT :
-      case IPP_TAG_NAME :
-      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, value = attr->values;
-	       i < attr->num_values;
-	       i ++, value ++)
-	    if (value->string.text)
-	      bytes += strlen(value->string.text);
-	  break;
-
-      case IPP_TAG_DATE :
-          bytes += (size_t)(11 * attr->num_values);
-	  break;
-
-      case IPP_TAG_RESOLUTION :
-          bytes += (size_t)(9 * attr->num_values);
-	  break;
-
-      case IPP_TAG_RANGE :
-          bytes += (size_t)(8 * attr->num_values);
-	  break;
-
-      case IPP_TAG_TEXTLANG :
-      case IPP_TAG_NAMELANG :
-          bytes += (size_t)(4 * attr->num_values);
-					/* Charset + text length */
-
-	  for (i = 0, value = attr->values;
-	       i < attr->num_values;
-	       i ++, value ++)
-	  {
-	    if (value->string.language)
-	      bytes += strlen(value->string.language);
-
-	    if (value->string.text)
-	      bytes += strlen(value->string.text);
-	  }
-	  break;
-
-      case IPP_TAG_BEGIN_COLLECTION :
-	  for (i = 0, value = attr->values;
-	       i < attr->num_values;
-	       i ++, value ++)
-            bytes += ipp_length(value->collection, 1);
-	  break;
-
-      default :
-	  for (i = 0, value = attr->values;
-	       i < attr->num_values;
-	       i ++, value ++)
-            bytes += (size_t)value->unknown.length;
-	  break;
-    }
-  }
-
- /*
-  * Finally, add 1 byte for the "end of attributes" tag or 5 bytes
-  * for the "end of collection" tag and return...
-  */
-
-  if (collection)
-    bytes += 5;
-  else
-    bytes ++;
-
-  DEBUG_printf(("4ipp_length: Returning " CUPS_LLFMT " bytes", CUPS_LLCAST bytes));
-
-  return (bytes);
-}
-
-
-/*
- * 'ipp_read_http()' - Semi-blocking read on a HTTP connection...
- */
-
-static ssize_t				/* O - Number of bytes read */
-ipp_read_http(http_t      *http,	/* I - Client connection */
-              ipp_uchar_t *buffer,	/* O - Buffer for data */
-	      size_t      length)	/* I - Total length */
-{
-  ssize_t	tbytes,			/* Total bytes read */
-		bytes;			/* Bytes read this pass */
-
-
-  DEBUG_printf(("7ipp_read_http(http=%p, buffer=%p, length=%d)", (void *)http, (void *)buffer, (int)length));
-
- /*
-  * Loop until all bytes are read...
-  */
-
-  for (tbytes = 0, bytes = 0;
-       tbytes < (int)length;
-       tbytes += bytes, buffer += bytes)
-  {
-    DEBUG_printf(("9ipp_read_http: tbytes=" CUPS_LLFMT ", http->state=%d", CUPS_LLCAST tbytes, http->state));
-
-    if (http->state == HTTP_STATE_WAITING)
-      break;
-
-    if (http->used == 0 && !http->blocking)
-    {
-     /*
-      * Wait up to 10 seconds for more data on non-blocking sockets...
-      */
-
-      if (!httpWait(http, 10000))
-      {
-       /*
-	* Signal no data...
-	*/
-
-	bytes = -1;
-	break;
-      }
-    }
-    else if (http->used == 0 && http->timeout_value > 0)
-    {
-     /*
-      * Wait up to timeout seconds for more data on blocking sockets...
-      */
-
-      if (!httpWait(http, (int)(1000 * http->timeout_value)))
-      {
-       /*
-	* Signal no data...
-	*/
-
-	bytes = -1;
-	break;
-      }
-    }
-
-    if ((bytes = httpRead2(http, (char *)buffer, length - (size_t)tbytes)) < 0)
-    {
-#ifdef WIN32
-      break;
-#else
-      if (errno != EAGAIN && errno != EINTR)
-	break;
-
-      bytes = 0;
-#endif /* WIN32 */
-    }
-    else if (bytes == 0)
-      break;
-  }
-
- /*
-  * Return the number of bytes read...
-  */
-
-  if (tbytes == 0 && bytes < 0)
-    tbytes = -1;
-
-  DEBUG_printf(("8ipp_read_http: Returning " CUPS_LLFMT " bytes", CUPS_LLCAST tbytes));
-
-  return (tbytes);
-}
-
-
-/*
- * 'ipp_read_file()' - Read IPP data from a file.
- */
-
-static ssize_t				/* O - Number of bytes read */
-ipp_read_file(int         *fd,		/* I - File descriptor */
-              ipp_uchar_t *buffer,	/* O - Read buffer */
-	      size_t      length)	/* I - Number of bytes to read */
-{
-#ifdef WIN32
-  return ((ssize_t)read(*fd, buffer, (unsigned)length));
-#else
-  return (read(*fd, buffer, length));
-#endif /* WIN32 */
-}
-
-
-/*
- * 'ipp_set_error()' - Set a formatted, localized error string.
- */
-
-static void
-ipp_set_error(ipp_status_t status,	/* I - Status code */
-              const char   *format,	/* I - Printf-style error string */
-	      ...)			/* I - Additional arguments as needed */
-{
-  va_list	ap;			/* Pointer to additional args */
-  char		buffer[2048];		/* Message buffer */
-  cups_lang_t	*lang = cupsLangDefault();
-					/* Current language */
-
-
-  va_start(ap, format);
-  vsnprintf(buffer, sizeof(buffer), _cupsLangString(lang, format), ap);
-  va_end(ap);
-
-  _cupsSetError(status, buffer, 0);
-}
-
-
-/*
- * 'ipp_set_value()' - Get the value element from an attribute, expanding it as
- *                     needed.
- */
-
-static _ipp_value_t *			/* O  - IPP value element or NULL on error */
-ipp_set_value(ipp_t           *ipp,	/* IO - IPP message */
-              ipp_attribute_t **attr,	/* IO - IPP attribute */
-              int             element)	/* I  - Value number (0-based) */
-{
-  ipp_attribute_t	*temp,		/* New attribute pointer */
-			*current,	/* Current attribute in list */
-			*prev;		/* Previous attribute in list */
-  int			alloc_values;	/* Allocated values */
-
-
- /*
-  * If we are setting an existing value element, return it...
-  */
-
-  temp = *attr;
-
-  if (temp->num_values <= 1)
-    alloc_values = 1;
-  else
-    alloc_values = (temp->num_values + IPP_MAX_VALUES - 1) &
-                   ~(IPP_MAX_VALUES - 1);
-
-  if (element < alloc_values)
-  {
-    if (element >= temp->num_values)
-      temp->num_values = element + 1;
-
-    return (temp->values + element);
-  }
-
- /*
-  * Otherwise re-allocate the attribute - we allocate in groups of IPP_MAX_VALUE
-  * values when num_values > 1.
-  */
-
-  if (alloc_values < IPP_MAX_VALUES)
-    alloc_values = IPP_MAX_VALUES;
-  else
-    alloc_values += IPP_MAX_VALUES;
-
-  DEBUG_printf(("4ipp_set_value: Reallocating for up to %d values.",
-                alloc_values));
-
- /*
-  * Reallocate memory...
-  */
-
-  if ((temp = realloc(temp, sizeof(ipp_attribute_t) + (size_t)(alloc_values - 1) * sizeof(_ipp_value_t))) == NULL)
-  {
-    _cupsSetHTTPError(HTTP_STATUS_ERROR);
-    DEBUG_puts("4ipp_set_value: Unable to resize attribute.");
-    return (NULL);
-  }
-
- /*
-  * Zero the new memory...
-  */
-
-  memset(temp->values + temp->num_values, 0, (size_t)(alloc_values - temp->num_values) * sizeof(_ipp_value_t));
-
-  if (temp != *attr)
-  {
-   /*
-    * Reset pointers in the list...
-    */
-
-    DEBUG_printf(("4debug_free: %p %s", (void *)*attr, temp->name));
-    DEBUG_printf(("4debug_alloc: %p %s %s%s (%d)", (void *)temp, temp->name, temp->num_values > 1 ? "1setOf " : "", ippTagString(temp->value_tag), temp->num_values));
-
-    if (ipp->current == *attr && ipp->prev)
-    {
-     /*
-      * Use current "previous" pointer...
-      */
-
-      prev = ipp->prev;
-    }
-    else
-    {
-     /*
-      * Find this attribute in the linked list...
-      */
-
-      for (prev = NULL, current = ipp->attrs;
-	   current && current != *attr;
-	   prev = current, current = current->next);
-
-      if (!current)
-      {
-       /*
-	* This is a serious error!
-	*/
-
-	*attr = temp;
-	_cupsSetError(IPP_STATUS_ERROR_INTERNAL,
-	              _("IPP attribute is not a member of the message."), 1);
-	DEBUG_puts("4ipp_set_value: Unable to find attribute in message.");
-	return (NULL);
-      }
-    }
-
-    if (prev)
-      prev->next = temp;
-    else
-      ipp->attrs = temp;
-
-    ipp->current = temp;
-    ipp->prev    = prev;
-
-    if (ipp->last == *attr)
-      ipp->last = temp;
-
-    *attr = temp;
-  }
-
- /*
-  * Return the value element...
-  */
-
-  if (element >= temp->num_values)
-    temp->num_values = element + 1;
-
-  return (temp->values + element);
-}
-
-
-/*
- * 'ipp_write_file()' - Write IPP data to a file.
- */
-
-static ssize_t				/* O - Number of bytes written */
-ipp_write_file(int         *fd,		/* I - File descriptor */
-               ipp_uchar_t *buffer,	/* I - Data to write */
-               size_t      length)	/* I - Number of bytes to write */
-{
-#ifdef WIN32
-  return ((ssize_t)write(*fd, buffer, (unsigned)length));
-#else
-  return (write(*fd, buffer, length));
-#endif /* WIN32 */
-}
diff --git a/doc/help/cupspm.html b/doc/help/cupspm.html
index 9b48cde..fbe4f6d 100644
--- a/doc/help/cupspm.html
+++ b/doc/help/cupspm.html
@@ -8,7 +8,7 @@
     <meta name="creator" content="codedoc v3.1">
     <meta name="author" content="Michael R Sweet">
     <meta name="copyright" content="Copyright &#xa9; 2007-2019 by Apple Inc. All Rights Reserved.">
-    <meta name="version" content="2.3.1">
+    <meta name="version" content="2.3.3">
     <style type="text/css"><!--
 body, p, h1, h2, h3, h4 {
   font-family: sans-serif;
diff --git a/locale/cups.pot b/locale/cups.pot
index fd2ddd0..679d185 100644
--- a/locale/cups.pot
+++ b/locale/cups.pot
@@ -23,9 +23,9 @@
 #, fuzzy
 msgid ""
 msgstr ""
-"Project-Id-Version: CUPS 2.3.0\n"
+"Project-Id-Version: CUPS 2.3.3\n"
 "Report-Msgid-Bugs-To: https://github.com/apple/cups/issues\n"
-"POT-Creation-Date: 2019-08-23 09:13-0400\n"
+"POT-Creation-Date: 2019-12-18 20:19-0500\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -1293,7 +1293,7 @@
 msgstr ""
 
 #: filter/rastertoepson.c:999 filter/rastertohp.c:668
-#: filter/rastertolabel.c:1120
+#: filter/rastertolabel.c:1121
 #, c-format
 msgid "%s job-id user title copies options [file]"
 msgstr ""
@@ -1680,12 +1680,12 @@
 msgid "%s: Unknown option \"%c\"."
 msgstr ""
 
-#: tools/ippeveprinter.c:381 tools/ippeveprinter.c:566 tools/ippfind.c:627
+#: tools/ippeveprinter.c:414 tools/ippeveprinter.c:604 tools/ippfind.c:627
 #, c-format
 msgid "%s: Unknown option \"%s\"."
 msgstr ""
 
-#: tools/ippeveprinter.c:555 tools/ippfind.c:919 tools/ipptool.c:606
+#: tools/ippeveprinter.c:593 tools/ippfind.c:919 tools/ipptool.c:606
 #, c-format
 msgid "%s: Unknown option \"-%c\"."
 msgstr ""
@@ -1776,7 +1776,7 @@
 msgid "--false                 Always false"
 msgstr ""
 
-#: tools/ippeveprinter.c:7665
+#: tools/ippeveprinter.c:7923
 msgid "--help                  Show program help"
 msgstr ""
 
@@ -1818,7 +1818,7 @@
 msgid "--name regex            Match service name to regular expression"
 msgstr ""
 
-#: tools/ippeveprinter.c:7666
+#: tools/ippeveprinter.c:7924
 msgid "--no-web-forms          Disable web forms for media and supplies"
 msgstr ""
 
@@ -1826,6 +1826,10 @@
 msgid "--not expression        Unary NOT of expression"
 msgstr ""
 
+#: tools/ippeveprinter.c:7925
+msgid "--pam-service service   Use the named PAM service"
+msgstr ""
+
 #: tools/ippfind.c:2792
 msgid "--path regex            Match resource path to regular expression"
 msgstr ""
@@ -1884,7 +1888,7 @@
 msgid "--uri regex             Match URI to regular expression"
 msgstr ""
 
-#: tools/ippeveprinter.c:7667 tools/ippfind.c:2770
+#: tools/ippeveprinter.c:7926 tools/ippfind.c:2770
 msgid "--version               Show program version"
 msgstr ""
 
@@ -1892,83 +1896,83 @@
 msgid "--version               Show version"
 msgstr ""
 
-#: ppdc/sample.c:305
+#: ppdc/sample.c:308
 msgid "-1"
 msgstr ""
 
-#: ppdc/sample.c:296
+#: ppdc/sample.c:299
 msgid "-10"
 msgstr ""
 
-#: ppdc/sample.c:388
+#: ppdc/sample.c:391
 msgid "-100"
 msgstr ""
 
-#: ppdc/sample.c:387
+#: ppdc/sample.c:390
 msgid "-105"
 msgstr ""
 
-#: ppdc/sample.c:295
+#: ppdc/sample.c:298
 msgid "-11"
 msgstr ""
 
-#: ppdc/sample.c:386
+#: ppdc/sample.c:389
 msgid "-110"
 msgstr ""
 
-#: ppdc/sample.c:385
+#: ppdc/sample.c:388
 msgid "-115"
 msgstr ""
 
-#: ppdc/sample.c:294
+#: ppdc/sample.c:297
 msgid "-12"
 msgstr ""
 
-#: ppdc/sample.c:384
+#: ppdc/sample.c:387
 msgid "-120"
 msgstr ""
 
-#: ppdc/sample.c:293
+#: ppdc/sample.c:296
 msgid "-13"
 msgstr ""
 
-#: ppdc/sample.c:292
+#: ppdc/sample.c:295
 msgid "-14"
 msgstr ""
 
-#: ppdc/sample.c:291
+#: ppdc/sample.c:294
 msgid "-15"
 msgstr ""
 
-#: ppdc/sample.c:304
+#: ppdc/sample.c:307
 msgid "-2"
 msgstr ""
 
-#: tools/ippeveprinter.c:7668
+#: tools/ippeveprinter.c:7927
 msgid "-2                      Set 2-sided printing support (default=1-sided)"
 msgstr ""
 
-#: ppdc/sample.c:404
+#: ppdc/sample.c:407
 msgid "-20"
 msgstr ""
 
-#: ppdc/sample.c:403
+#: ppdc/sample.c:406
 msgid "-25"
 msgstr ""
 
-#: ppdc/sample.c:303
+#: ppdc/sample.c:306
 msgid "-3"
 msgstr ""
 
-#: ppdc/sample.c:402
+#: ppdc/sample.c:405
 msgid "-30"
 msgstr ""
 
-#: ppdc/sample.c:401
+#: ppdc/sample.c:404
 msgid "-35"
 msgstr ""
 
-#: ppdc/sample.c:302
+#: ppdc/sample.c:305
 msgid "-4"
 msgstr ""
 
@@ -1976,27 +1980,27 @@
 msgid "-4                      Connect using IPv4"
 msgstr ""
 
-#: ppdc/sample.c:400
+#: ppdc/sample.c:403
 msgid "-40"
 msgstr ""
 
-#: ppdc/sample.c:399
+#: ppdc/sample.c:402
 msgid "-45"
 msgstr ""
 
-#: ppdc/sample.c:301
+#: ppdc/sample.c:304
 msgid "-5"
 msgstr ""
 
-#: ppdc/sample.c:398
+#: ppdc/sample.c:401
 msgid "-50"
 msgstr ""
 
-#: ppdc/sample.c:397
+#: ppdc/sample.c:400
 msgid "-55"
 msgstr ""
 
-#: ppdc/sample.c:300
+#: ppdc/sample.c:303
 msgid "-6"
 msgstr ""
 
@@ -2004,50 +2008,54 @@
 msgid "-6                      Connect using IPv6"
 msgstr ""
 
-#: ppdc/sample.c:396
+#: ppdc/sample.c:399
 msgid "-60"
 msgstr ""
 
-#: ppdc/sample.c:395
+#: ppdc/sample.c:398
 msgid "-65"
 msgstr ""
 
-#: ppdc/sample.c:299
+#: ppdc/sample.c:302
 msgid "-7"
 msgstr ""
 
-#: ppdc/sample.c:394
+#: ppdc/sample.c:397
 msgid "-70"
 msgstr ""
 
-#: ppdc/sample.c:393
+#: ppdc/sample.c:396
 msgid "-75"
 msgstr ""
 
-#: ppdc/sample.c:298
+#: ppdc/sample.c:301
 msgid "-8"
 msgstr ""
 
-#: ppdc/sample.c:392
+#: ppdc/sample.c:395
 msgid "-80"
 msgstr ""
 
-#: ppdc/sample.c:391
+#: ppdc/sample.c:394
 msgid "-85"
 msgstr ""
 
-#: ppdc/sample.c:297
+#: ppdc/sample.c:300
 msgid "-9"
 msgstr ""
 
-#: ppdc/sample.c:390
+#: ppdc/sample.c:393
 msgid "-90"
 msgstr ""
 
-#: ppdc/sample.c:389
+#: ppdc/sample.c:392
 msgid "-95"
 msgstr ""
 
+#: tools/ippeveprinter.c:7928
+msgid "-A                      Enable authentication"
+msgstr ""
+
 #: tools/ipptool.c:4314
 msgid "-C                      Send requests using chunking (default)"
 msgstr ""
@@ -2056,7 +2064,7 @@
 msgid "-D description          Specify the textual description of the printer"
 msgstr ""
 
-#: tools/ippeveprinter.c:7669
+#: tools/ippeveprinter.c:7929
 msgid "-D device-uri           Set the device URI for the printer"
 msgstr ""
 
@@ -2066,7 +2074,7 @@
 
 #: berkeley/lpq.c:644 berkeley/lpr.c:433 berkeley/lprm.c:234
 #: systemv/cancel.c:403 systemv/cupsaccept.c:244 systemv/cupsctl.c:233
-#: systemv/lp.c:752 systemv/lpadmin.c:1624 systemv/lpinfo.c:498
+#: systemv/lp.c:753 systemv/lpadmin.c:1624 systemv/lpinfo.c:498
 #: systemv/lpmove.c:217 systemv/lpoptions.c:540 systemv/lpstat.c:2045
 msgid "-E                      Encrypt the connection to the server"
 msgstr ""
@@ -2075,11 +2083,11 @@
 msgid "-E                      Test with encryption using HTTP Upgrade to TLS"
 msgstr ""
 
-#: scheduler/main.c:2136
+#: scheduler/main.c:2138
 msgid "-F                      Run in the foreground but detach from console."
 msgstr ""
 
-#: tools/ippeveprinter.c:7670
+#: tools/ippeveprinter.c:7930
 msgid "-F output-type/subtype  Set the output format for the printer"
 msgstr ""
 
@@ -2087,23 +2095,23 @@
 msgid "-H                      Show the default server and port"
 msgstr ""
 
-#: systemv/lp.c:754
+#: systemv/lp.c:755
 msgid "-H HH:MM                Hold the job until the specified UTC time"
 msgstr ""
 
-#: systemv/lp.c:755
+#: systemv/lp.c:756
 msgid "-H hold                 Hold the job until released/resumed"
 msgstr ""
 
-#: systemv/lp.c:756
+#: systemv/lp.c:757
 msgid "-H immediate            Print the job as soon as possible"
 msgstr ""
 
-#: systemv/lp.c:757
+#: systemv/lp.c:758
 msgid "-H restart              Reprint the job"
 msgstr ""
 
-#: systemv/lp.c:758
+#: systemv/lp.c:759
 msgid "-H resume               Resume a held job"
 msgstr ""
 
@@ -2121,7 +2129,7 @@
 "                          Ignore specific warnings"
 msgstr ""
 
-#: tools/ippeveprinter.c:7672
+#: tools/ippeveprinter.c:7932
 msgid "-K keypath              Set location of server X.509 certificates and keys."
 msgstr ""
 
@@ -2133,7 +2141,7 @@
 msgid "-L location             Specify the textual location of the printer"
 msgstr ""
 
-#: tools/ippeveprinter.c:7674
+#: tools/ippeveprinter.c:7934
 msgid "-M manufacturer         Set manufacturer name (default=Test)"
 msgstr ""
 
@@ -2141,7 +2149,7 @@
 msgid "-P destination          Show status for the specified destination"
 msgstr ""
 
-#: berkeley/lpr.c:450 berkeley/lprm.c:236
+#: berkeley/lpr.c:448 berkeley/lprm.c:236
 msgid "-P destination          Specify the destination"
 msgstr ""
 
@@ -2149,7 +2157,7 @@
 msgid "-P filename.plist       Produce XML plist to a file and test report to standard output"
 msgstr ""
 
-#: tools/ippeveprinter.c:7675
+#: tools/ippeveprinter.c:7935
 msgid "-P filename.ppd         Load printer attributes from PPD file"
 msgstr ""
 
@@ -2157,7 +2165,7 @@
 msgid "-P number[-number]      Match port to number or range"
 msgstr ""
 
-#: systemv/lp.c:774
+#: systemv/lp.c:775
 msgid "-P page-list            Specify a list of pages to print"
 msgstr ""
 
@@ -2190,7 +2198,7 @@
 msgstr ""
 
 #: berkeley/lpq.c:648 berkeley/lpr.c:452 berkeley/lprm.c:237
-#: systemv/cancel.c:406 systemv/cupsaccept.c:247 systemv/lp.c:778
+#: systemv/cancel.c:406 systemv/cupsaccept.c:247 systemv/lp.c:779
 #: systemv/lpadmin.c:1652 systemv/lpinfo.c:502 systemv/lpmove.c:219
 #: systemv/lpoptions.c:545 systemv/lpstat.c:2048
 msgid "-U username             Specify the username to use for authentication"
@@ -2200,7 +2208,7 @@
 msgid "-U username             Specify username to use for authentication"
 msgstr ""
 
-#: tools/ippeveprinter.c:7676 tools/ippfind.c:2769 tools/ipptool.c:4321
+#: tools/ippeveprinter.c:7936 tools/ippfind.c:2769 tools/ipptool.c:4321
 msgid "-V version              Set default IPP version"
 msgstr ""
 
@@ -2234,7 +2242,7 @@
 msgid "-a [destination(s)]     Show the accepting state of destinations"
 msgstr ""
 
-#: tools/ippeveprinter.c:7677
+#: tools/ippeveprinter.c:7937
 msgid "-a filename.conf        Load printer attributes from conf file"
 msgstr ""
 
@@ -2254,11 +2262,11 @@
 msgid "-c class                Add the named destination to a class"
 msgstr ""
 
-#: tools/ippeveprinter.c:7678
+#: tools/ippeveprinter.c:7938
 msgid "-c command              Set print command"
 msgstr ""
 
-#: scheduler/main.c:2134
+#: scheduler/main.c:2136
 msgid "-c cupsd.conf           Set cupsd.conf file to use."
 msgstr ""
 
@@ -2274,6 +2282,10 @@
 msgid "-d destination          Set the named destination as the server default"
 msgstr ""
 
+#: systemv/lp.c:752
+msgid "-d destination          Specify the destination"
+msgstr ""
+
 #: tools/ipptool.c:4324
 msgid "-d name=value           Set named variable to value"
 msgstr ""
@@ -2282,7 +2294,7 @@
 msgid "-d regex                Match domain to regular expression"
 msgstr ""
 
-#: tools/ippeveprinter.c:7679
+#: tools/ippeveprinter.c:7939
 msgid "-d spool-directory      Set spool directory"
 msgstr ""
 
@@ -2290,7 +2302,7 @@
 msgid "-e                      Show available destinations on the network"
 msgstr ""
 
-#: scheduler/main.c:2135
+#: scheduler/main.c:2137
 msgid "-f                      Run in the foreground."
 msgstr ""
 
@@ -2298,11 +2310,11 @@
 msgid "-f filename             Set default request filename"
 msgstr ""
 
-#: tools/ippeveprinter.c:7680
+#: tools/ippeveprinter.c:7940
 msgid "-f type/subtype[,...]   Set supported file types"
 msgstr ""
 
-#: scheduler/main.c:2137
+#: scheduler/main.c:2139
 msgid "-h                      Show this usage message."
 msgstr ""
 
@@ -2315,17 +2327,17 @@
 msgstr ""
 
 #: berkeley/lpq.c:645 berkeley/lprm.c:235 systemv/cancel.c:404
-#: systemv/cupsaccept.c:245 systemv/cupsctl.c:234 systemv/lp.c:753
+#: systemv/cupsaccept.c:245 systemv/cupsctl.c:234 systemv/lp.c:754
 #: systemv/lpadmin.c:1626 systemv/lpinfo.c:499 systemv/lpmove.c:218
 #: systemv/lpoptions.c:541 systemv/lpstat.c:2046
 msgid "-h server[:port]        Connect to the named server and port"
 msgstr ""
 
-#: tools/ippeveprinter.c:7681
+#: tools/ippeveprinter.c:7941
 msgid "-i iconfile.png         Set icon file"
 msgstr ""
 
-#: systemv/lp.c:759
+#: systemv/lp.c:760
 msgid "-i id                   Specify an existing job ID to modify"
 msgstr ""
 
@@ -2337,7 +2349,7 @@
 msgid "-i seconds              Repeat the last file with the given time interval"
 msgstr ""
 
-#: tools/ippeveprinter.c:7682
+#: tools/ippeveprinter.c:7942
 msgid "-k                      Keep job spool files"
 msgstr ""
 
@@ -2349,7 +2361,7 @@
 msgid "-l                      Produce plain text output"
 msgstr ""
 
-#: scheduler/main.c:2139
+#: scheduler/main.c:2141
 msgid "-l                      Run cupsd on demand."
 msgstr ""
 
@@ -2361,11 +2373,11 @@
 msgid "-l                      Show verbose (long) output"
 msgstr ""
 
-#: tools/ippeveprinter.c:7683
+#: tools/ippeveprinter.c:7943
 msgid "-l location             Set location of printer"
 msgstr ""
 
-#: berkeley/lpr.c:435 systemv/lp.c:760
+#: berkeley/lpr.c:435 systemv/lp.c:761
 msgid "-m                      Send an email notification when the job completes"
 msgstr ""
 
@@ -2377,7 +2389,7 @@
 msgid "-m everywhere           Specify the printer is compatible with IPP Everywhere"
 msgstr ""
 
-#: tools/ippeveprinter.c:7684
+#: tools/ippeveprinter.c:7944
 msgid "-m model                Set model name (default=Printer)"
 msgstr ""
 
@@ -2389,11 +2401,11 @@
 msgid "-n count                Repeat the last file the given number of times"
 msgstr ""
 
-#: tools/ippeveprinter.c:7685
+#: tools/ippeveprinter.c:7945
 msgid "-n hostname             Set hostname for printer"
 msgstr ""
 
-#: systemv/lp.c:761
+#: systemv/lp.c:762
 msgid "-n num-copies           Specify the number of copies to print"
 msgstr ""
 
@@ -2433,11 +2445,11 @@
 msgid "-o job-quota-period=N   Specify the per-user quota period in seconds"
 msgstr ""
 
-#: berkeley/lpr.c:437 systemv/lp.c:763
+#: berkeley/lpr.c:437 systemv/lp.c:764
 msgid "-o job-sheets=standard  Print a banner page with the job"
 msgstr ""
 
-#: berkeley/lpr.c:438 systemv/lp.c:764
+#: berkeley/lpr.c:438 systemv/lp.c:765
 msgid "-o media=size           Specify the media size to use"
 msgstr ""
 
@@ -2449,21 +2461,21 @@
 msgid "-o name[=value]         Set default option and value"
 msgstr ""
 
-#: berkeley/lpr.c:439 systemv/lp.c:765
+#: berkeley/lpr.c:439 systemv/lp.c:766
 msgid "-o number-up=N          Specify that input pages should be printed N-up (1, 2, 4, 6, 9, and 16 are supported)"
 msgstr ""
 
-#: berkeley/lpr.c:436 systemv/lp.c:762
+#: berkeley/lpr.c:436 systemv/lp.c:763
 msgid "-o option[=value]       Specify a printer-specific option"
 msgstr ""
 
-#: berkeley/lpr.c:440 systemv/lp.c:766
+#: berkeley/lpr.c:440 systemv/lp.c:767
 msgid ""
 "-o orientation-requested=N\n"
 "                        Specify portrait (3) or landscape (4) orientation"
 msgstr ""
 
-#: berkeley/lpr.c:442 systemv/lp.c:768
+#: berkeley/lpr.c:442 systemv/lp.c:769
 msgid "-o print-quality=N      Specify the print quality - draft (3), normal (4), or best (5)"
 msgstr ""
 
@@ -2485,17 +2497,17 @@
 "                        Specify the printer operation policy"
 msgstr ""
 
-#: berkeley/lpr.c:443 systemv/lp.c:769
+#: berkeley/lpr.c:443 systemv/lp.c:770
 msgid "-o sides=one-sided      Specify 1-sided printing"
 msgstr ""
 
-#: berkeley/lpr.c:444 systemv/lp.c:770
+#: berkeley/lpr.c:444 systemv/lp.c:771
 msgid ""
 "-o sides=two-sided-long-edge\n"
 "                        Specify 2-sided portrait printing"
 msgstr ""
 
-#: berkeley/lpr.c:446 systemv/lp.c:772
+#: berkeley/lpr.c:446 systemv/lp.c:773
 msgid ""
 "-o sides=two-sided-short-edge\n"
 "                        Specify 2-sided landscape printing"
@@ -2517,7 +2529,7 @@
 msgid "-p destination          Specify/add the named destination"
 msgstr ""
 
-#: tools/ippeveprinter.c:7686
+#: tools/ippeveprinter.c:7946
 msgid "-p port                 Set port number for printer"
 msgstr ""
 
@@ -2529,15 +2541,15 @@
 msgid "-q                      Run silently"
 msgstr ""
 
-#: berkeley/lpr.c:448
+#: berkeley/lpr.c:449
 msgid "-q                      Specify the job should be held for printing"
 msgstr ""
 
-#: systemv/lp.c:775
+#: systemv/lp.c:776
 msgid "-q priority             Specify the priority from low (1) to high (100)"
 msgstr ""
 
-#: berkeley/lpr.c:449
+#: berkeley/lpr.c:450
 msgid "-r                      Remove the file(s) after submission"
 msgstr ""
 
@@ -2561,11 +2573,11 @@
 msgid "-r reason               Specify a reason message that others can see"
 msgstr ""
 
-#: tools/ippeveprinter.c:7687
+#: tools/ippeveprinter.c:7947
 msgid "-r subtype,[subtype]    Set DNS-SD service subtype"
 msgstr ""
 
-#: systemv/lp.c:776
+#: systemv/lp.c:777
 msgid "-s                      Be silent"
 msgstr ""
 
@@ -2577,11 +2589,11 @@
 msgid "-s                      Show a status summary"
 msgstr ""
 
-#: scheduler/main.c:2141
+#: scheduler/main.c:2143
 msgid "-s cups-files.conf      Set cups-files.conf file to use."
 msgstr ""
 
-#: tools/ippeveprinter.c:7688
+#: tools/ippeveprinter.c:7948
 msgid "-s speed[,color-speed]  Set speed in pages per minute"
 msgstr ""
 
@@ -2593,7 +2605,7 @@
 msgid "-t                      Show all status information"
 msgstr ""
 
-#: scheduler/main.c:2142
+#: scheduler/main.c:2144
 msgid "-t                      Test the configuration file."
 msgstr ""
 
@@ -2601,7 +2613,7 @@
 msgid "-t key                  True if the TXT record contains the key"
 msgstr ""
 
-#: systemv/lp.c:777
+#: systemv/lp.c:778
 msgid "-t title                Specify the job title"
 msgstr ""
 
@@ -2629,7 +2641,7 @@
 msgid "-u regex                Match URI to regular expression"
 msgstr ""
 
-#: systemv/cupstestppd.c:3865 tools/ippeveprinter.c:7689 tools/ipptool.c:4332
+#: systemv/cupstestppd.c:3865 tools/ippeveprinter.c:7949 tools/ipptool.c:4332
 msgid "-v                      Be verbose"
 msgstr ""
 
@@ -2667,19 +2679,19 @@
 "                        Execute program if true"
 msgstr ""
 
-#: cups/dest.c:1868
+#: cups/dest.c:1867
 msgid "/etc/cups/lpoptions file names default destination that does not exist."
 msgstr ""
 
-#: ppdc/sample.c:306
+#: ppdc/sample.c:309
 msgid "0"
 msgstr ""
 
-#: ppdc/sample.c:307
+#: ppdc/sample.c:310
 msgid "1"
 msgstr ""
 
-#: ppdc/sample.c:379
+#: ppdc/sample.c:382
 msgid "1 inch/sec."
 msgstr ""
 
@@ -2691,7 +2703,7 @@
 msgid "1.25x2.25\""
 msgstr ""
 
-#: ppdc/sample.c:427
+#: ppdc/sample.c:430
 msgid "1.5 inch/sec."
 msgstr ""
 
@@ -2711,11 +2723,11 @@
 msgid "1.50x2.00\""
 msgstr ""
 
-#: ppdc/sample.c:316
+#: ppdc/sample.c:319
 msgid "10"
 msgstr ""
 
-#: ppdc/sample.c:438
+#: ppdc/sample.c:441
 msgid "10 inches/sec."
 msgstr ""
 
@@ -2731,39 +2743,39 @@
 msgid "10 x 14"
 msgstr ""
 
-#: ppdc/sample.c:418
+#: ppdc/sample.c:421
 msgid "100"
 msgstr ""
 
-#: ppdc/sample.c:329
+#: ppdc/sample.c:332
 msgid "100 mm/sec."
 msgstr ""
 
-#: ppdc/sample.c:419
+#: ppdc/sample.c:422
 msgid "105"
 msgstr ""
 
-#: ppdc/sample.c:317
+#: ppdc/sample.c:320
 msgid "11"
 msgstr ""
 
-#: ppdc/sample.c:439
+#: ppdc/sample.c:442
 msgid "11 inches/sec."
 msgstr ""
 
-#: ppdc/sample.c:420
+#: ppdc/sample.c:423
 msgid "110"
 msgstr ""
 
-#: ppdc/sample.c:421
+#: ppdc/sample.c:424
 msgid "115"
 msgstr ""
 
-#: ppdc/sample.c:318
+#: ppdc/sample.c:321
 msgid "12"
 msgstr ""
 
-#: ppdc/sample.c:440
+#: ppdc/sample.c:443
 msgid "12 inches/sec."
 msgstr ""
 
@@ -2771,39 +2783,39 @@
 msgid "12 x 11"
 msgstr ""
 
-#: ppdc/sample.c:422
+#: ppdc/sample.c:425
 msgid "120"
 msgstr ""
 
-#: ppdc/sample.c:330
+#: ppdc/sample.c:333
 msgid "120 mm/sec."
 msgstr ""
 
-#: ppdc/sample.c:243
+#: ppdc/sample.c:247
 msgid "120x60dpi"
 msgstr ""
 
-#: ppdc/sample.c:249
+#: ppdc/sample.c:253
 msgid "120x72dpi"
 msgstr ""
 
-#: ppdc/sample.c:319
+#: ppdc/sample.c:322
 msgid "13"
 msgstr ""
 
-#: ppdc/sample.c:232
+#: ppdc/sample.c:233
 msgid "136dpi"
 msgstr ""
 
-#: ppdc/sample.c:320
+#: ppdc/sample.c:323
 msgid "14"
 msgstr ""
 
-#: ppdc/sample.c:321
+#: ppdc/sample.c:324
 msgid "15"
 msgstr ""
 
-#: ppdc/sample.c:323
+#: ppdc/sample.c:326
 msgid "15 mm/sec."
 msgstr ""
 
@@ -2811,43 +2823,43 @@
 msgid "15 x 11"
 msgstr ""
 
-#: ppdc/sample.c:331
+#: ppdc/sample.c:334
 msgid "150 mm/sec."
 msgstr ""
 
-#: ppdc/sample.c:278
+#: ppdc/sample.c:281
 msgid "150dpi"
 msgstr ""
 
-#: ppdc/sample.c:363
+#: ppdc/sample.c:366
 msgid "16"
 msgstr ""
 
-#: ppdc/sample.c:364
+#: ppdc/sample.c:367
 msgid "17"
 msgstr ""
 
-#: ppdc/sample.c:365
+#: ppdc/sample.c:368
 msgid "18"
 msgstr ""
 
-#: ppdc/sample.c:244
+#: ppdc/sample.c:248
 msgid "180dpi"
 msgstr ""
 
-#: ppdc/sample.c:366
+#: ppdc/sample.c:369
 msgid "19"
 msgstr ""
 
-#: ppdc/sample.c:308
+#: ppdc/sample.c:311
 msgid "2"
 msgstr ""
 
-#: ppdc/sample.c:380
+#: ppdc/sample.c:383
 msgid "2 inches/sec."
 msgstr ""
 
-#: cups/ppd-cache.c:3872 ppdc/sample.c:262
+#: cups/ppd-cache.c:3872 ppdc/sample.c:265
 msgid "2-Sided Printing"
 msgstr ""
 
@@ -2891,107 +2903,107 @@
 msgid "2.25x1.25\""
 msgstr ""
 
-#: ppdc/sample.c:188
+#: ppdc/sample.c:189
 msgid "2.25x4.00\""
 msgstr ""
 
-#: ppdc/sample.c:189
+#: ppdc/sample.c:190
 msgid "2.25x5.50\""
 msgstr ""
 
-#: ppdc/sample.c:190
+#: ppdc/sample.c:191
 msgid "2.38x5.50\""
 msgstr ""
 
-#: ppdc/sample.c:428
+#: ppdc/sample.c:431
 msgid "2.5 inches/sec."
 msgstr ""
 
-#: ppdc/sample.c:191
+#: ppdc/sample.c:192
 msgid "2.50x1.00\""
 msgstr ""
 
-#: ppdc/sample.c:192
+#: ppdc/sample.c:193
 msgid "2.50x2.00\""
 msgstr ""
 
-#: ppdc/sample.c:193
+#: ppdc/sample.c:194
 msgid "2.75x1.25\""
 msgstr ""
 
-#: ppdc/sample.c:194
+#: ppdc/sample.c:195
 msgid "2.9 x 1\""
 msgstr ""
 
-#: ppdc/sample.c:367
+#: ppdc/sample.c:370
 msgid "20"
 msgstr ""
 
-#: ppdc/sample.c:324
+#: ppdc/sample.c:327
 msgid "20 mm/sec."
 msgstr ""
 
-#: ppdc/sample.c:332
+#: ppdc/sample.c:335
 msgid "200 mm/sec."
 msgstr ""
 
-#: ppdc/sample.c:233
+#: ppdc/sample.c:234
 msgid "203dpi"
 msgstr ""
 
-#: ppdc/sample.c:368
+#: ppdc/sample.c:371
 msgid "21"
 msgstr ""
 
-#: ppdc/sample.c:369
+#: ppdc/sample.c:372
 msgid "22"
 msgstr ""
 
-#: ppdc/sample.c:370
+#: ppdc/sample.c:373
 msgid "23"
 msgstr ""
 
-#: ppdc/sample.c:371
+#: ppdc/sample.c:374
 msgid "24"
 msgstr ""
 
-#: ppdc/sample.c:241
+#: ppdc/sample.c:245
 msgid "24-Pin Series"
 msgstr ""
 
-#: ppdc/sample.c:250
+#: ppdc/sample.c:254
 msgid "240x72dpi"
 msgstr ""
 
-#: ppdc/sample.c:372
+#: ppdc/sample.c:375
 msgid "25"
 msgstr ""
 
-#: ppdc/sample.c:333
+#: ppdc/sample.c:336
 msgid "250 mm/sec."
 msgstr ""
 
-#: ppdc/sample.c:373
+#: ppdc/sample.c:376
 msgid "26"
 msgstr ""
 
-#: ppdc/sample.c:374
+#: ppdc/sample.c:377
 msgid "27"
 msgstr ""
 
-#: ppdc/sample.c:375
+#: ppdc/sample.c:378
 msgid "28"
 msgstr ""
 
-#: ppdc/sample.c:376
+#: ppdc/sample.c:379
 msgid "29"
 msgstr ""
 
-#: ppdc/sample.c:309
+#: ppdc/sample.c:312
 msgid "3"
 msgstr ""
 
-#: ppdc/sample.c:381
+#: ppdc/sample.c:384
 msgid "3 inches/sec."
 msgstr ""
 
@@ -2999,43 +3011,43 @@
 msgid "3 x 5"
 msgstr ""
 
-#: ppdc/sample.c:195
+#: ppdc/sample.c:196
 msgid "3.00x1.00\""
 msgstr ""
 
-#: ppdc/sample.c:196
+#: ppdc/sample.c:197
 msgid "3.00x1.25\""
 msgstr ""
 
-#: ppdc/sample.c:197
+#: ppdc/sample.c:198
 msgid "3.00x2.00\""
 msgstr ""
 
-#: ppdc/sample.c:198
+#: ppdc/sample.c:199
 msgid "3.00x3.00\""
 msgstr ""
 
-#: ppdc/sample.c:199
+#: ppdc/sample.c:200
 msgid "3.00x5.00\""
 msgstr ""
 
-#: ppdc/sample.c:200
+#: ppdc/sample.c:201
 msgid "3.25x2.00\""
 msgstr ""
 
-#: ppdc/sample.c:201
+#: ppdc/sample.c:202
 msgid "3.25x5.00\""
 msgstr ""
 
-#: ppdc/sample.c:202
+#: ppdc/sample.c:203
 msgid "3.25x5.50\""
 msgstr ""
 
-#: ppdc/sample.c:203
+#: ppdc/sample.c:204
 msgid "3.25x5.83\""
 msgstr ""
 
-#: ppdc/sample.c:204
+#: ppdc/sample.c:205
 msgid "3.25x7.83\""
 msgstr ""
 
@@ -3047,99 +3059,103 @@
 msgid "3.5\" Disk"
 msgstr ""
 
-#: ppdc/sample.c:205
+#: ppdc/sample.c:206
 msgid "3.50x1.00\""
 msgstr ""
 
-#: ppdc/sample.c:377
+#: ppdc/sample.c:380
 msgid "30"
 msgstr ""
 
-#: ppdc/sample.c:325
+#: ppdc/sample.c:328
 msgid "30 mm/sec."
 msgstr ""
 
-#: ppdc/sample.c:334
+#: ppdc/sample.c:337
 msgid "300 mm/sec."
 msgstr ""
 
-#: ppdc/sample.c:234
+#: ppdc/sample.c:235
 msgid "300dpi"
 msgstr ""
 
-#: ppdc/sample.c:405
+#: ppdc/sample.c:188
+msgid "30859 Paint Can Label"
+msgstr ""
+
+#: ppdc/sample.c:408
 msgid "35"
 msgstr ""
 
-#: ppdc/sample.c:246
+#: ppdc/sample.c:250
 msgid "360dpi"
 msgstr ""
 
-#: ppdc/sample.c:245
+#: ppdc/sample.c:249
 msgid "360x180dpi"
 msgstr ""
 
-#: ppdc/sample.c:310
+#: ppdc/sample.c:313
 msgid "4"
 msgstr ""
 
-#: ppdc/sample.c:382
+#: ppdc/sample.c:385
 msgid "4 inches/sec."
 msgstr ""
 
-#: ppdc/sample.c:206
+#: ppdc/sample.c:207
 msgid "4.00x1.00\""
 msgstr ""
 
-#: ppdc/sample.c:214
+#: ppdc/sample.c:215
 msgid "4.00x13.00\""
 msgstr ""
 
-#: ppdc/sample.c:207
+#: ppdc/sample.c:208
 msgid "4.00x2.00\""
 msgstr ""
 
-#: ppdc/sample.c:208
+#: ppdc/sample.c:209
 msgid "4.00x2.50\""
 msgstr ""
 
-#: ppdc/sample.c:209
+#: ppdc/sample.c:210
 msgid "4.00x3.00\""
 msgstr ""
 
-#: ppdc/sample.c:210
+#: ppdc/sample.c:211
 msgid "4.00x4.00\""
 msgstr ""
 
-#: ppdc/sample.c:211
+#: ppdc/sample.c:212
 msgid "4.00x5.00\""
 msgstr ""
 
-#: ppdc/sample.c:212
+#: ppdc/sample.c:213
 msgid "4.00x6.00\""
 msgstr ""
 
-#: ppdc/sample.c:213
+#: ppdc/sample.c:214
 msgid "4.00x6.50\""
 msgstr ""
 
-#: ppdc/sample.c:406
+#: ppdc/sample.c:409
 msgid "40"
 msgstr ""
 
-#: ppdc/sample.c:326
+#: ppdc/sample.c:329
 msgid "40 mm/sec."
 msgstr ""
 
-#: ppdc/sample.c:407
+#: ppdc/sample.c:410
 msgid "45"
 msgstr ""
 
-#: ppdc/sample.c:311
+#: ppdc/sample.c:314
 msgid "5"
 msgstr ""
 
-#: ppdc/sample.c:432
+#: ppdc/sample.c:435
 msgid "5 inches/sec."
 msgstr ""
 
@@ -3147,79 +3163,79 @@
 msgid "5 x 7"
 msgstr ""
 
-#: ppdc/sample.c:408
+#: ppdc/sample.c:411
 msgid "50"
 msgstr ""
 
-#: ppdc/sample.c:409
+#: ppdc/sample.c:412
 msgid "55"
 msgstr ""
 
-#: ppdc/sample.c:312
+#: ppdc/sample.c:315
 msgid "6"
 msgstr ""
 
-#: ppdc/sample.c:433
+#: ppdc/sample.c:436
 msgid "6 inches/sec."
 msgstr ""
 
-#: ppdc/sample.c:215
+#: ppdc/sample.c:216
 msgid "6.00x1.00\""
 msgstr ""
 
-#: ppdc/sample.c:216
+#: ppdc/sample.c:217
 msgid "6.00x2.00\""
 msgstr ""
 
-#: ppdc/sample.c:217
+#: ppdc/sample.c:218
 msgid "6.00x3.00\""
 msgstr ""
 
-#: ppdc/sample.c:218
+#: ppdc/sample.c:219
 msgid "6.00x4.00\""
 msgstr ""
 
-#: ppdc/sample.c:219
+#: ppdc/sample.c:220
 msgid "6.00x5.00\""
 msgstr ""
 
-#: ppdc/sample.c:220
+#: ppdc/sample.c:221
 msgid "6.00x6.00\""
 msgstr ""
 
-#: ppdc/sample.c:221
+#: ppdc/sample.c:222
 msgid "6.00x6.50\""
 msgstr ""
 
-#: ppdc/sample.c:410
+#: ppdc/sample.c:413
 msgid "60"
 msgstr ""
 
-#: ppdc/sample.c:327
+#: ppdc/sample.c:330
 msgid "60 mm/sec."
 msgstr ""
 
-#: ppdc/sample.c:253
+#: ppdc/sample.c:257
 msgid "600dpi"
 msgstr ""
 
-#: ppdc/sample.c:242
+#: ppdc/sample.c:246
 msgid "60dpi"
 msgstr ""
 
-#: ppdc/sample.c:248
+#: ppdc/sample.c:252
 msgid "60x72dpi"
 msgstr ""
 
-#: ppdc/sample.c:411
+#: ppdc/sample.c:414
 msgid "65"
 msgstr ""
 
-#: ppdc/sample.c:313
+#: ppdc/sample.c:316
 msgid "7"
 msgstr ""
 
-#: ppdc/sample.c:435
+#: ppdc/sample.c:438
 msgid "7 inches/sec."
 msgstr ""
 
@@ -3227,19 +3243,19 @@
 msgid "7 x 9"
 msgstr ""
 
-#: ppdc/sample.c:412
+#: ppdc/sample.c:415
 msgid "70"
 msgstr ""
 
-#: ppdc/sample.c:413
+#: ppdc/sample.c:416
 msgid "75"
 msgstr ""
 
-#: ppdc/sample.c:314
+#: ppdc/sample.c:317
 msgid "8"
 msgstr ""
 
-#: ppdc/sample.c:436
+#: ppdc/sample.c:439
 msgid "8 inches/sec."
 msgstr ""
 
@@ -3247,51 +3263,51 @@
 msgid "8 x 10"
 msgstr ""
 
-#: ppdc/sample.c:222
+#: ppdc/sample.c:223
 msgid "8.00x1.00\""
 msgstr ""
 
-#: ppdc/sample.c:223
+#: ppdc/sample.c:224
 msgid "8.00x2.00\""
 msgstr ""
 
-#: ppdc/sample.c:224
+#: ppdc/sample.c:225
 msgid "8.00x3.00\""
 msgstr ""
 
-#: ppdc/sample.c:225
+#: ppdc/sample.c:226
 msgid "8.00x4.00\""
 msgstr ""
 
-#: ppdc/sample.c:226
+#: ppdc/sample.c:227
 msgid "8.00x5.00\""
 msgstr ""
 
-#: ppdc/sample.c:227
+#: ppdc/sample.c:228
 msgid "8.00x6.00\""
 msgstr ""
 
-#: ppdc/sample.c:228
+#: ppdc/sample.c:229
 msgid "8.00x6.50\""
 msgstr ""
 
-#: ppdc/sample.c:414
+#: ppdc/sample.c:417
 msgid "80"
 msgstr ""
 
-#: ppdc/sample.c:328
+#: ppdc/sample.c:331
 msgid "80 mm/sec."
 msgstr ""
 
-#: ppdc/sample.c:415
+#: ppdc/sample.c:418
 msgid "85"
 msgstr ""
 
-#: ppdc/sample.c:315
+#: ppdc/sample.c:318
 msgid "9"
 msgstr ""
 
-#: ppdc/sample.c:437
+#: ppdc/sample.c:440
 msgid "9 inches/sec."
 msgstr ""
 
@@ -3303,15 +3319,15 @@
 msgid "9 x 12"
 msgstr ""
 
-#: ppdc/sample.c:247
+#: ppdc/sample.c:251
 msgid "9-Pin Series"
 msgstr ""
 
-#: ppdc/sample.c:416
+#: ppdc/sample.c:419
 msgid "90"
 msgstr ""
 
-#: ppdc/sample.c:417
+#: ppdc/sample.c:420
 msgid "95"
 msgstr ""
 
@@ -3469,7 +3485,7 @@
 msgid "Accept Jobs"
 msgstr ""
 
-#: cups/http-support.c:1494
+#: cups/http-support.c:1499
 msgid "Accepted"
 msgstr ""
 
@@ -3489,7 +3505,7 @@
 msgid "Administration"
 msgstr ""
 
-#: ppdc/sample.c:424
+#: ppdc/sample.c:427
 msgid "Always"
 msgstr ""
 
@@ -3497,7 +3513,7 @@
 msgid "AppSocket/HP JetDirect"
 msgstr ""
 
-#: ppdc/sample.c:445
+#: ppdc/sample.c:448
 msgid "Applicator"
 msgstr ""
 
@@ -3621,7 +3637,7 @@
 msgid "Bad PPD file."
 msgstr ""
 
-#: cups/http-support.c:1512
+#: cups/http-support.c:1517
 msgid "Bad Request"
 msgstr ""
 
@@ -3637,7 +3653,7 @@
 msgid "Bad URI."
 msgstr ""
 
-#: cups/hash.c:48 cups/http-support.c:1606
+#: cups/hash.c:49 cups/http-support.c:1611
 msgid "Bad arguments to function"
 msgstr ""
 
@@ -3650,7 +3666,7 @@
 msgid "Bad custom parameter"
 msgstr ""
 
-#: cups/http-support.c:1746 scheduler/ipp.c:2365
+#: cups/http-support.c:1751 scheduler/ipp.c:2365
 #, c-format
 msgid "Bad device-uri \"%s\"."
 msgstr ""
@@ -3674,7 +3690,7 @@
 msgid "Bad filename buffer"
 msgstr ""
 
-#: cups/http-support.c:1615
+#: cups/http-support.c:1620
 msgid "Bad hostname/address in URI"
 msgstr ""
 
@@ -3737,7 +3753,7 @@
 msgid "Bad page-ranges values %d-%d."
 msgstr ""
 
-#: cups/http-support.c:1612
+#: cups/http-support.c:1617
 msgid "Bad port number in URI"
 msgstr ""
 
@@ -3765,15 +3781,15 @@
 msgid "Bad request version number %d.%d."
 msgstr ""
 
-#: cups/http-support.c:1609
+#: cups/http-support.c:1614
 msgid "Bad resource in URI"
 msgstr ""
 
-#: cups/http-support.c:1621
+#: cups/http-support.c:1626
 msgid "Bad scheme in URI"
 msgstr ""
 
-#: cups/http-support.c:1618
+#: cups/http-support.c:1623
 msgid "Bad username in URI"
 msgstr ""
 
@@ -3781,7 +3797,7 @@
 msgid "Bad value string"
 msgstr ""
 
-#: cups/http-support.c:1624
+#: cups/http-support.c:1629
 msgid "Bad/empty URI"
 msgstr ""
 
@@ -3789,11 +3805,11 @@
 msgid "Banners"
 msgstr ""
 
-#: ppdc/sample.c:282
+#: ppdc/sample.c:285
 msgid "Bond Paper"
 msgstr ""
 
-#: cups/ppd-cache.c:4152
+#: cups/ppd-cache.c:4277
 msgid "Booklet"
 msgstr ""
 
@@ -3806,11 +3822,11 @@
 msgid "Buffer overflow detected, aborting."
 msgstr ""
 
-#: ppdc/sample.c:277
+#: ppdc/sample.c:280
 msgid "CMYK"
 msgstr ""
 
-#: ppdc/sample.c:358
+#: ppdc/sample.c:361
 msgid "CPCL Label Printer"
 msgstr ""
 
@@ -3818,7 +3834,7 @@
 msgid "Cancel Jobs"
 msgstr ""
 
-#: backend/ipp.c:2287
+#: backend/ipp.c:2295
 msgid "Canceling print job."
 msgstr ""
 
@@ -3830,7 +3846,7 @@
 msgid "Cannot share a remote Kerberized printer."
 msgstr ""
 
-#: ppdc/sample.c:271
+#: ppdc/sample.c:274
 msgid "Cassette"
 msgstr ""
 
@@ -3856,11 +3872,11 @@
 msgid "Close-Job doesn't support the job-uri attribute."
 msgstr ""
 
-#: cups/ppd-cache.c:3790 ppdc/sample.c:276
+#: cups/ppd-cache.c:3790 ppdc/sample.c:279
 msgid "Color"
 msgstr ""
 
-#: cups/ppd-cache.c:3751 ppdc/sample.c:274
+#: cups/ppd-cache.c:3751 ppdc/sample.c:277
 msgid "Color Mode"
 msgstr ""
 
@@ -3875,39 +3891,39 @@
 msgid "Community name uses indefinite length"
 msgstr ""
 
-#: backend/ipp.c:865 backend/lpd.c:929 backend/socket.c:375
+#: backend/ipp.c:864 backend/lpd.c:933 backend/socket.c:375
 msgid "Connected to printer."
 msgstr ""
 
-#: backend/ipp.c:701 backend/lpd.c:753 backend/socket.c:295
+#: backend/ipp.c:700 backend/lpd.c:757 backend/socket.c:295
 msgid "Connecting to printer."
 msgstr ""
 
-#: cups/http-support.c:1482
+#: cups/http-support.c:1487
 msgid "Continue"
 msgstr ""
 
-#: ppdc/sample.c:360
+#: ppdc/sample.c:363
 msgid "Continuous"
 msgstr ""
 
-#: backend/lpd.c:1078 backend/lpd.c:1210
+#: backend/lpd.c:1082 backend/lpd.c:1214
 msgid "Control file sent successfully."
 msgstr ""
 
-#: backend/ipp.c:1396 backend/lpd.c:445
+#: backend/ipp.c:1395 backend/lpd.c:449
 msgid "Copying print data."
 msgstr ""
 
-#: cups/http-support.c:1491
+#: cups/http-support.c:1496
 msgid "Created"
 msgstr ""
 
-#: cups/tls-darwin.c:748 cups/tls-gnutls.c:582
+#: cups/tls-darwin.c:723 cups/tls-gnutls.c:582
 msgid "Credentials do not validate against site CA certificate."
 msgstr ""
 
-#: cups/tls-darwin.c:759 cups/tls-gnutls.c:599
+#: cups/tls-darwin.c:734 cups/tls-gnutls.c:599
 msgid "Credentials have expired."
 msgstr ""
 
@@ -3915,31 +3931,35 @@
 msgid "Custom"
 msgstr ""
 
-#: ppdc/sample.c:354
+#: ppdc/sample.c:357
 msgid "CustominCutInterval"
 msgstr ""
 
-#: ppdc/sample.c:352
+#: ppdc/sample.c:355
 msgid "CustominTearInterval"
 msgstr ""
 
-#: ppdc/sample.c:338
+#: cups/ppd-cache.c:4312 ppdc/sample.c:341
 msgid "Cut"
 msgstr ""
 
-#: ppdc/sample.c:446
+#: ppdc/sample.c:449
 msgid "Cutter"
 msgstr ""
 
-#: ppdc/sample.c:239
+#: ppdc/sample.c:230
+msgid "DYMO"
+msgstr ""
+
+#: ppdc/sample.c:243
 msgid "Dark"
 msgstr ""
 
-#: ppdc/sample.c:235
+#: ppdc/sample.c:239
 msgid "Darkness"
 msgstr ""
 
-#: backend/lpd.c:1163
+#: backend/lpd.c:1167
 msgid "Data file sent successfully."
 msgstr ""
 
@@ -3959,7 +3979,7 @@
 msgid "Delete Printer"
 msgstr ""
 
-#: ppdc/sample.c:273
+#: ppdc/sample.c:276
 msgid "DeskJet Series"
 msgstr ""
 
@@ -3991,7 +4011,7 @@
 "        location = %s"
 msgstr ""
 
-#: ppdc/sample.c:431
+#: ppdc/sample.c:434
 msgid "Direct Thermal Media"
 msgstr ""
 
@@ -4020,7 +4040,7 @@
 msgid "Directory \"%s\" permissions OK (0%o/uid=%d/gid=%d)."
 msgstr ""
 
-#: ppdc/sample.c:340
+#: ppdc/sample.c:343
 msgid "Disabled"
 msgstr ""
 
@@ -4029,24 +4049,20 @@
 msgid "Document #%d does not exist in job #%d."
 msgstr ""
 
-#: cups/ppd-cache.c:4283 cups/ppd-cache.c:4285 cups/ppd-cache.c:4348
-#: cups/ppd-cache.c:4385
+#: cups/ppd-cache.c:4471 cups/ppd-cache.c:4473 cups/ppd-cache.c:4536
+#: cups/ppd-cache.c:4573
 msgid "Draft"
 msgstr ""
 
-#: ppdc/sample.c:267
+#: ppdc/sample.c:270
 msgid "Duplexer"
 msgstr ""
 
-#: ppdc/sample.c:229
-msgid "Dymo"
-msgstr ""
-
-#: ppdc/sample.c:426
+#: ppdc/sample.c:429
 msgid "EPL1 Label Printer"
 msgstr ""
 
-#: ppdc/sample.c:429
+#: ppdc/sample.c:432
 msgid "EPL2 Label Printer"
 msgstr ""
 
@@ -4161,7 +4177,7 @@
 msgid "Envelope DL"
 msgstr ""
 
-#: ppdc/sample.c:261
+#: ppdc/sample.c:264
 msgid "Envelope Feed"
 msgstr ""
 
@@ -4289,7 +4305,7 @@
 msgid "Environment Variables:"
 msgstr ""
 
-#: ppdc/sample.c:240
+#: ppdc/sample.c:244
 msgid "Epson"
 msgstr ""
 
@@ -4318,43 +4334,43 @@
 msgid "European Fanfold Legal"
 msgstr ""
 
-#: ppdc/sample.c:350
+#: ppdc/sample.c:353
 msgid "Every 10 Labels"
 msgstr ""
 
-#: ppdc/sample.c:342
+#: ppdc/sample.c:345
 msgid "Every 2 Labels"
 msgstr ""
 
-#: ppdc/sample.c:343
+#: ppdc/sample.c:346
 msgid "Every 3 Labels"
 msgstr ""
 
-#: ppdc/sample.c:344
+#: ppdc/sample.c:347
 msgid "Every 4 Labels"
 msgstr ""
 
-#: ppdc/sample.c:345
+#: ppdc/sample.c:348
 msgid "Every 5 Labels"
 msgstr ""
 
-#: ppdc/sample.c:346
+#: ppdc/sample.c:349
 msgid "Every 6 Labels"
 msgstr ""
 
-#: ppdc/sample.c:347
+#: ppdc/sample.c:350
 msgid "Every 7 Labels"
 msgstr ""
 
-#: ppdc/sample.c:348
+#: ppdc/sample.c:351
 msgid "Every 8 Labels"
 msgstr ""
 
-#: ppdc/sample.c:349
+#: ppdc/sample.c:352
 msgid "Every 9 Labels"
 msgstr ""
 
-#: ppdc/sample.c:341
+#: ppdc/sample.c:344
 msgid "Every Label"
 msgstr ""
 
@@ -4362,7 +4378,7 @@
 msgid "Executive"
 msgstr ""
 
-#: cups/http-support.c:1540
+#: cups/http-support.c:1545
 msgid "Expectation Failed"
 msgstr ""
 
@@ -4409,16 +4425,16 @@
 msgstr ""
 
 #: filter/rastertoepson.c:1131 filter/rastertohp.c:802
-#: filter/rastertolabel.c:1259
+#: filter/rastertolabel.c:1260
 #, c-format
 msgid "Finished page %d."
 msgstr ""
 
-#: cups/ppd-cache.c:4171
+#: cups/ppd-cache.c:4359
 msgid "Finishing Preset"
 msgstr ""
 
-#: cups/ppd-cache.c:4061
+#: cups/ppd-cache.c:4134
 msgid "Fold"
 msgstr ""
 
@@ -4426,11 +4442,11 @@
 msgid "Folio"
 msgstr ""
 
-#: cups/http-support.c:1519
+#: cups/http-support.c:1524
 msgid "Forbidden"
 msgstr ""
 
-#: cups/http-support.c:1503
+#: cups/http-support.c:1508
 msgid "Found"
 msgstr ""
 
@@ -4438,7 +4454,7 @@
 msgid "General"
 msgstr ""
 
-#: ppdc/sample.c:251
+#: ppdc/sample.c:255
 msgid "Generic"
 msgstr ""
 
@@ -4446,7 +4462,7 @@
 msgid "Get-Response-PDU uses indefinite length"
 msgstr ""
 
-#: ppdc/sample.c:285
+#: ppdc/sample.c:288
 msgid "Glossy Paper"
 msgstr ""
 
@@ -4457,11 +4473,11 @@
 msgid "Got a printer-uri attribute but no job-id."
 msgstr ""
 
-#: cups/ppd-cache.c:3767 cups/ppd-cache.c:3778 ppdc/sample.c:275
+#: cups/ppd-cache.c:3767 cups/ppd-cache.c:3778 ppdc/sample.c:278
 msgid "Grayscale"
 msgstr ""
 
-#: ppdc/sample.c:272
+#: ppdc/sample.c:275
 msgid "HP"
 msgstr ""
 
@@ -4469,7 +4485,7 @@
 msgid "Hanging Folder"
 msgstr ""
 
-#: cups/hash.c:292
+#: cups/hash.c:289
 msgid "Hash buffer too small."
 msgstr ""
 
@@ -4477,7 +4493,7 @@
 msgid "Help file not in index."
 msgstr ""
 
-#: cups/ppd-cache.c:4290 cups/ppd-cache.c:4359 cups/ppd-cache.c:4390
+#: cups/ppd-cache.c:4478 cups/ppd-cache.c:4547 cups/ppd-cache.c:4578
 msgid "High"
 msgstr ""
 
@@ -4631,23 +4647,23 @@
 msgid "Illegal whitespace character"
 msgstr ""
 
-#: ppdc/sample.c:266
+#: ppdc/sample.c:269
 msgid "Installable Options"
 msgstr ""
 
-#: ppdc/sample.c:269
+#: ppdc/sample.c:272
 msgid "Installed"
 msgstr ""
 
-#: ppdc/sample.c:288
+#: ppdc/sample.c:291
 msgid "IntelliBar Label Printer"
 msgstr ""
 
-#: ppdc/sample.c:287
+#: ppdc/sample.c:290
 msgid "Intellitech"
 msgstr ""
 
-#: cups/http-support.c:1546
+#: cups/http-support.c:1551
 msgid "Internal Server Error"
 msgstr ""
 
@@ -4663,7 +4679,7 @@
 msgid "Internet Postage 3-Part"
 msgstr ""
 
-#: backend/ipp.c:319
+#: backend/ipp.c:318
 msgid "Internet Printing Protocol"
 msgstr ""
 
@@ -4838,19 +4854,19 @@
 msgid "Jobs"
 msgstr ""
 
-#: backend/lpd.c:162
+#: backend/lpd.c:166
 msgid "LPD/LPR Host or Printer"
 msgstr ""
 
-#: cups/dest.c:1856
+#: cups/dest.c:1855
 msgid "LPDEST environment variable names default destination that does not exist."
 msgstr ""
 
-#: ppdc/sample.c:230
+#: ppdc/sample.c:231
 msgid "Label Printer"
 msgstr ""
 
-#: ppdc/sample.c:441
+#: ppdc/sample.c:444
 msgid "Label Top"
 msgstr ""
 
@@ -4863,7 +4879,7 @@
 msgid "Large Address"
 msgstr ""
 
-#: ppdc/sample.c:286
+#: ppdc/sample.c:289
 msgid "LaserJet Series PCL 4/5"
 msgstr ""
 
@@ -4875,7 +4891,7 @@
 msgid "Letter Oversize Long Edge"
 msgstr ""
 
-#: ppdc/sample.c:236
+#: ppdc/sample.c:240
 msgid "Light"
 msgstr ""
 
@@ -4887,7 +4903,7 @@
 msgid "List Available Printers"
 msgstr ""
 
-#: tools/ippeveprinter.c:604
+#: tools/ippeveprinter.c:642
 #, c-format
 msgid "Listening on port %d."
 msgstr ""
@@ -4896,15 +4912,19 @@
 msgid "Local printer created."
 msgstr ""
 
-#: cups/ppd-cache.c:3872 ppdc/sample.c:264
+#: cups/ppd-cache.c:3872 ppdc/sample.c:267
 msgid "Long-Edge (Portrait)"
 msgstr ""
 
-#: cups/http-support.c:1870
+#: cups/http-support.c:1875
 msgid "Looking for printer."
 msgstr ""
 
-#: ppdc/sample.c:260
+#: ppdc/sample.c:237
+msgid "Main Roll"
+msgstr ""
+
+#: ppdc/sample.c:263
 msgid "Manual Feed"
 msgstr ""
 
@@ -4912,19 +4932,19 @@
 msgid "Media Size"
 msgstr ""
 
-#: cups/ppd.c:808 cups/ppd.c:1345 ppdc/sample.c:254
+#: cups/ppd.c:808 cups/ppd.c:1345 ppdc/sample.c:236
 msgid "Media Source"
 msgstr ""
 
-#: ppdc/sample.c:359
+#: ppdc/sample.c:362
 msgid "Media Tracking"
 msgstr ""
 
-#: cups/ppd.c:806 cups/ppd.c:1343 ppdc/sample.c:280
+#: cups/ppd.c:806 cups/ppd.c:1343 ppdc/sample.c:283
 msgid "Media Type"
 msgstr ""
 
-#: ppdc/sample.c:237
+#: ppdc/sample.c:241
 msgid "Medium"
 msgstr ""
 
@@ -4991,11 +5011,11 @@
 msgid "Missing required attributes."
 msgstr ""
 
-#: cups/http-support.c:1636
+#: cups/http-support.c:1641
 msgid "Missing resource in URI"
 msgstr ""
 
-#: cups/http-support.c:1630
+#: cups/http-support.c:1635
 msgid "Missing scheme in URI"
 msgstr ""
 
@@ -5040,7 +5060,7 @@
 msgid "Move Job"
 msgstr ""
 
-#: cups/http-support.c:1500
+#: cups/http-support.c:1505
 msgid "Moved Permanently"
 msgstr ""
 
@@ -5056,15 +5076,15 @@
 msgid "Nested classes are not allowed."
 msgstr ""
 
-#: ppdc/sample.c:425
+#: ppdc/sample.c:428
 msgid "Never"
 msgstr ""
 
-#: cups/tls-darwin.c:690 cups/tls-gnutls.c:524
+#: cups/tls-darwin.c:665 cups/tls-gnutls.c:524
 msgid "New credentials are not valid for name."
 msgstr ""
 
-#: cups/tls-darwin.c:680 cups/tls-gnutls.c:514
+#: cups/tls-darwin.c:655 cups/tls-gnutls.c:514
 msgid "New credentials are older than stored credentials."
 msgstr ""
 
@@ -5072,7 +5092,7 @@
 msgid "No"
 msgstr ""
 
-#: cups/http-support.c:1497
+#: cups/http-support.c:1502
 msgid "No Content"
 msgstr ""
 
@@ -5109,7 +5129,7 @@
 msgid "No authentication information provided."
 msgstr ""
 
-#: cups/tls-darwin.c:630 cups/tls-gnutls.c:461
+#: cups/tls-darwin.c:605 cups/tls-gnutls.c:461
 msgid "No common name specified."
 msgstr ""
 
@@ -5117,7 +5137,7 @@
 msgid "No community name"
 msgstr ""
 
-#: cups/dest.c:1860 cups/dest.c:1872
+#: cups/dest.c:1859 cups/dest.c:1871
 msgid "No default destination."
 msgstr ""
 
@@ -5154,7 +5174,7 @@
 msgstr ""
 
 #: filter/rastertoepson.c:1161 filter/rastertohp.c:833
-#: filter/rastertolabel.c:1288
+#: filter/rastertolabel.c:1289
 msgid "No pages were found."
 msgstr ""
 
@@ -5190,7 +5210,7 @@
 msgid "No request-id"
 msgstr ""
 
-#: cups/tls-darwin.c:710 cups/tls-gnutls.c:544
+#: cups/tls-darwin.c:685 cups/tls-gnutls.c:544
 msgid "No stored credentials, not valid for name."
 msgstr ""
 
@@ -5210,41 +5230,41 @@
 msgid "No version number"
 msgstr ""
 
-#: ppdc/sample.c:362
+#: ppdc/sample.c:365
 msgid "Non-continuous (Mark sensing)"
 msgstr ""
 
-#: ppdc/sample.c:361
+#: ppdc/sample.c:364
 msgid "Non-continuous (Web sensing)"
 msgstr ""
 
-#: cups/ppd-cache.c:4014 cups/ppd-cache.c:4064 cups/ppd-cache.c:4114
-#: cups/ppd-cache.c:4174
+#: cups/ppd-cache.c:4059 cups/ppd-cache.c:4137 cups/ppd-cache.c:4225
+#: cups/ppd-cache.c:4315 cups/ppd-cache.c:4362
 msgid "None"
 msgstr ""
 
-#: cups/ppd-cache.c:4287 cups/ppd-cache.c:4353 cups/ppd-cache.c:4387
-#: ppdc/sample.c:238
+#: cups/ppd-cache.c:4475 cups/ppd-cache.c:4541 cups/ppd-cache.c:4575
+#: ppdc/sample.c:242
 msgid "Normal"
 msgstr ""
 
-#: cups/http-support.c:1522
+#: cups/http-support.c:1527
 msgid "Not Found"
 msgstr ""
 
-#: cups/http-support.c:1534
+#: cups/http-support.c:1539
 msgid "Not Implemented"
 msgstr ""
 
-#: ppdc/sample.c:268
+#: ppdc/sample.c:271
 msgid "Not Installed"
 msgstr ""
 
-#: cups/http-support.c:1509
+#: cups/http-support.c:1514
 msgid "Not Modified"
 msgstr ""
 
-#: cups/http-support.c:1537
+#: cups/http-support.c:1542
 msgid "Not Supported"
 msgstr ""
 
@@ -5256,15 +5276,15 @@
 msgid "Note"
 msgstr ""
 
-#: cups/http-support.c:1488 cups/http-support.c:1627 cups/ppd.c:283
+#: cups/http-support.c:1493 cups/http-support.c:1632 cups/ppd.c:283
 msgid "OK"
 msgstr ""
 
-#: cups/ppd-cache.c:3872 ppdc/sample.c:263
+#: cups/ppd-cache.c:3872 ppdc/sample.c:266
 msgid "Off (1-Sided)"
 msgstr ""
 
-#: ppdc/sample.c:356
+#: ppdc/sample.c:359
 msgid "Oki"
 msgstr ""
 
@@ -5303,11 +5323,11 @@
 msgstr ""
 
 #: berkeley/lpq.c:642 berkeley/lpr.c:431 berkeley/lprm.c:232
-#: scheduler/cupsfilter.c:1476 scheduler/main.c:2133 systemv/cancel.c:401
+#: scheduler/cupsfilter.c:1476 scheduler/main.c:2135 systemv/cancel.c:401
 #: systemv/cupsaccept.c:243 systemv/cupsctl.c:232 systemv/cupstestppd.c:3857
 #: systemv/lp.c:750 systemv/lpadmin.c:1620 systemv/lpinfo.c:497
 #: systemv/lpmove.c:216 systemv/lpoptions.c:538 systemv/lpstat.c:2044
-#: tools/ippeveprinter.c:7664 tools/ippfind.c:2765 tools/ipptool.c:4307
+#: tools/ippeveprinter.c:7922 tools/ippfind.c:2765 tools/ipptool.c:4307
 #: ppdc/ppdc.cxx:426 ppdc/ppdhtml.cxx:173 ppdc/ppdi.cxx:119
 #: ppdc/ppdmerge.cxx:356 ppdc/ppdpo.cxx:243
 msgid "Options:"
@@ -5333,7 +5353,7 @@
 msgid "Output Mode"
 msgstr ""
 
-#: ppdc/sample.c:252
+#: ppdc/sample.c:256
 msgid "PCL Laser Printer"
 msgstr ""
 
@@ -5361,7 +5381,7 @@
 msgid "PRC32K Oversize Long Edge"
 msgstr ""
 
-#: cups/dest.c:1858
+#: cups/dest.c:1857
 msgid "PRINTER environment variable names default destination that does not exist."
 msgstr ""
 
@@ -5373,11 +5393,11 @@
 msgid "Packet does not start with SEQUENCE"
 msgstr ""
 
-#: ppdc/sample.c:355
+#: ppdc/sample.c:358
 msgid "ParamCustominCutInterval"
 msgstr ""
 
-#: ppdc/sample.c:353
+#: ppdc/sample.c:356
 msgid "ParamCustominTearInterval"
 msgstr ""
 
@@ -5394,7 +5414,7 @@
 msgid "Pause Printer"
 msgstr ""
 
-#: ppdc/sample.c:443
+#: ppdc/sample.c:446
 msgid "Peel-Off"
 msgstr ""
 
@@ -5406,7 +5426,7 @@
 msgid "Photo Labels"
 msgstr ""
 
-#: ppdc/sample.c:281
+#: ppdc/sample.c:284
 msgid "Plain Paper"
 msgstr ""
 
@@ -5418,7 +5438,7 @@
 msgid "Port Monitor"
 msgstr ""
 
-#: ppdc/sample.c:270
+#: ppdc/sample.c:273
 msgid "PostScript Printer"
 msgstr ""
 
@@ -5438,11 +5458,11 @@
 msgid "Postcard Long Edge"
 msgstr ""
 
-#: backend/ipp.c:973 backend/ipp.c:981
+#: backend/ipp.c:972 backend/ipp.c:980
 msgid "Preparing to print."
 msgstr ""
 
-#: ppdc/sample.c:290
+#: ppdc/sample.c:293
 msgid "Print Density"
 msgstr ""
 
@@ -5450,15 +5470,15 @@
 msgid "Print Job:"
 msgstr ""
 
-#: ppdc/sample.c:335
+#: ppdc/sample.c:338
 msgid "Print Mode"
 msgstr ""
 
-#: cups/ppd-cache.c:4281 cups/ppd-cache.c:4343 cups/ppd-cache.c:4383
+#: cups/ppd-cache.c:4469 cups/ppd-cache.c:4531 cups/ppd-cache.c:4571
 msgid "Print Quality"
 msgstr ""
 
-#: ppdc/sample.c:378
+#: ppdc/sample.c:381
 msgid "Print Rate"
 msgstr ""
 
@@ -5466,7 +5486,7 @@
 msgid "Print Self-Test Page"
 msgstr ""
 
-#: ppdc/sample.c:322
+#: ppdc/sample.c:325
 msgid "Print Speed"
 msgstr ""
 
@@ -5474,11 +5494,11 @@
 msgid "Print Test Page"
 msgstr ""
 
-#: ppdc/sample.c:351
+#: ppdc/sample.c:354
 msgid "Print and Cut"
 msgstr ""
 
-#: ppdc/sample.c:339
+#: ppdc/sample.c:342
 msgid "Print and Tear"
 msgstr ""
 
@@ -5486,15 +5506,15 @@
 msgid "Print file sent."
 msgstr ""
 
-#: backend/ipp.c:2261
+#: backend/ipp.c:2269
 msgid "Print job canceled at printer."
 msgstr ""
 
-#: backend/ipp.c:2253
+#: backend/ipp.c:2261
 msgid "Print job too large."
 msgstr ""
 
-#: backend/ipp.c:1721
+#: backend/ipp.c:1722
 msgid "Print job was not accepted."
 msgstr ""
 
@@ -5507,7 +5527,7 @@
 msgid "Printer Added"
 msgstr ""
 
-#: ppdc/sample.c:255
+#: ppdc/sample.c:258
 msgid "Printer Default"
 msgstr ""
 
@@ -5523,19 +5543,19 @@
 msgid "Printer Paused"
 msgstr ""
 
-#: ppdc/sample.c:289
+#: ppdc/sample.c:292
 msgid "Printer Settings"
 msgstr ""
 
-#: backend/ipp.c:2256
+#: backend/ipp.c:2264
 msgid "Printer cannot print supplied content."
 msgstr ""
 
-#: backend/ipp.c:2259
+#: backend/ipp.c:2267
 msgid "Printer cannot print with supplied options."
 msgstr ""
 
-#: cups/ppd-cache.c:4556
+#: cups/ppd-cache.c:4744
 msgid "Printer does not support required IPP attributes or document formats."
 msgstr ""
 
@@ -5548,12 +5568,12 @@
 msgstr ""
 
 #: filter/rastertoepson.c:1107 filter/rastertohp.c:774
-#: filter/rastertolabel.c:1235
+#: filter/rastertolabel.c:1236
 #, c-format
 msgid "Printing page %d, %u%% complete."
 msgstr ""
 
-#: cups/ppd-cache.c:4111
+#: cups/ppd-cache.c:4222
 msgid "Punch"
 msgstr ""
 
@@ -5573,25 +5593,25 @@
 msgid "Reject Jobs"
 msgstr ""
 
-#: backend/lpd.c:1074 backend/lpd.c:1206
+#: backend/lpd.c:1078 backend/lpd.c:1210
 #, c-format
 msgid "Remote host did not accept control file (%d)."
 msgstr ""
 
-#: backend/lpd.c:1159
+#: backend/lpd.c:1163
 #, c-format
 msgid "Remote host did not accept data file (%d)."
 msgstr ""
 
-#: ppdc/sample.c:423
+#: ppdc/sample.c:426
 msgid "Reprint After Error"
 msgstr ""
 
-#: cups/http-support.c:1525
+#: cups/http-support.c:1530
 msgid "Request Entity Too Large"
 msgstr ""
 
-#: cups/ppd.c:812 cups/ppd.c:1349 ppdc/sample.c:231
+#: cups/ppd.c:812 cups/ppd.c:1349 ppdc/sample.c:232
 msgid "Resolution"
 msgstr ""
 
@@ -5607,7 +5627,7 @@
 msgid "Return Address"
 msgstr ""
 
-#: ppdc/sample.c:444
+#: ppdc/sample.c:447
 msgid "Rewind"
 msgstr ""
 
@@ -5615,11 +5635,15 @@
 msgid "SEQUENCE uses indefinite length"
 msgstr ""
 
-#: cups/http-support.c:1549
+#: cups/http-support.c:1554
 msgid "SSL/TLS Negotiation Error"
 msgstr ""
 
-#: cups/http-support.c:1506
+#: ppdc/sample.c:238
+msgid "Second Roll (DUO/Twin Only)"
+msgstr ""
+
+#: cups/http-support.c:1511
 msgid "See Other"
 msgstr ""
 
@@ -5627,7 +5651,7 @@
 msgid "See remote printer."
 msgstr ""
 
-#: cups/tls-darwin.c:765 cups/tls-gnutls.c:606
+#: cups/tls-darwin.c:740 cups/tls-gnutls.c:606
 msgid "Self-signed credentials are blocked."
 msgstr ""
 
@@ -5651,11 +5675,11 @@
 msgid "Server Stopped"
 msgstr ""
 
-#: cups/tls-darwin.c:1275 cups/tls-gnutls.c:1298
+#: cups/tls-darwin.c:1250 cups/tls-gnutls.c:1299
 msgid "Server credentials not set."
 msgstr ""
 
-#: cups/http-support.c:1543
+#: cups/http-support.c:1548
 msgid "Service Unavailable"
 msgstr ""
 
@@ -5684,24 +5708,24 @@
 msgid "Shipping Address"
 msgstr ""
 
-#: cups/ppd-cache.c:3872 ppdc/sample.c:265
+#: cups/ppd-cache.c:3872 ppdc/sample.c:268
 msgid "Short-Edge (Landscape)"
 msgstr ""
 
-#: ppdc/sample.c:283
+#: ppdc/sample.c:286
 msgid "Special Paper"
 msgstr ""
 
-#: backend/lpd.c:1115
+#: backend/lpd.c:1119
 #, c-format
 msgid "Spooling job, %.0f%% complete."
 msgstr ""
 
-#: ppdc/sample.c:336
+#: ppdc/sample.c:339
 msgid "Standard"
 msgstr ""
 
-#: cups/ppd-cache.c:4011
+#: cups/ppd-cache.c:4056
 msgid "Staple"
 msgstr ""
 
@@ -5711,7 +5735,7 @@
 msgstr ""
 
 #: filter/rastertoepson.c:1083 filter/rastertohp.c:750
-#: filter/rastertolabel.c:1211
+#: filter/rastertolabel.c:1212
 #, c-format
 msgid "Starting page %d."
 msgstr ""
@@ -5742,7 +5766,7 @@
 msgid "Super B/A3"
 msgstr ""
 
-#: cups/http-support.c:1485
+#: cups/http-support.c:1490
 msgid "Switching Protocols"
 msgstr ""
 
@@ -5758,15 +5782,15 @@
 msgid "Tabloid Oversize Long Edge"
 msgstr ""
 
-#: ppdc/sample.c:337
+#: ppdc/sample.c:340
 msgid "Tear"
 msgstr ""
 
-#: ppdc/sample.c:442
+#: ppdc/sample.c:445
 msgid "Tear-Off"
 msgstr ""
 
-#: ppdc/sample.c:383
+#: ppdc/sample.c:386
 msgid "Tear-Off Adjust Position"
 msgstr ""
 
@@ -5802,7 +5826,7 @@
 msgstr ""
 
 #: filter/rastertoepson.c:1052 filter/rastertohp.c:721
-#: filter/rastertolabel.c:1175
+#: filter/rastertolabel.c:1176
 msgid "The PPD file could not be opened."
 msgstr ""
 
@@ -5819,16 +5843,16 @@
 msgid "The notify-user-data value is too large (%d > 63 octets)."
 msgstr ""
 
-#: backend/ipp.c:993
+#: backend/ipp.c:992
 msgid "The printer configuration is incorrect or the printer no longer exists."
 msgstr ""
 
-#: backend/lpd.c:678 backend/lpd.c:1067 backend/lpd.c:1149 backend/lpd.c:1199
+#: backend/lpd.c:682 backend/lpd.c:1071 backend/lpd.c:1153 backend/lpd.c:1203
 msgid "The printer did not respond."
 msgstr ""
 
-#: backend/ipp.c:766 backend/ipp.c:956 backend/ipp.c:1070 backend/ipp.c:1523
-#: backend/ipp.c:1693 backend/lpd.c:886 backend/socket.c:354
+#: backend/ipp.c:765 backend/ipp.c:955 backend/ipp.c:1069 backend/ipp.c:1524
+#: backend/ipp.c:1694 backend/lpd.c:890 backend/socket.c:354
 #: backend/usb-unix.c:117 backend/usb-unix.c:407 backend/usb-unix.c:490
 msgid "The printer is in use."
 msgstr ""
@@ -5837,8 +5861,8 @@
 msgid "The printer is not connected."
 msgstr ""
 
-#: backend/ipp.c:744 backend/ipp.c:777 backend/ipp.c:952 backend/lpd.c:865
-#: backend/lpd.c:906 backend/socket.c:333 backend/socket.c:366
+#: backend/ipp.c:743 backend/ipp.c:776 backend/ipp.c:951 backend/lpd.c:869
+#: backend/lpd.c:910 backend/socket.c:333 backend/socket.c:366
 msgid "The printer is not responding."
 msgstr ""
 
@@ -5854,11 +5878,11 @@
 msgid "The printer is offline."
 msgstr ""
 
-#: backend/ipp.c:760 backend/lpd.c:880 backend/socket.c:348
+#: backend/ipp.c:759 backend/lpd.c:884 backend/socket.c:348
 msgid "The printer is unreachable at this time."
 msgstr ""
 
-#: backend/ipp.c:753 backend/lpd.c:873 backend/socket.c:341
+#: backend/ipp.c:752 backend/lpd.c:877 backend/socket.c:341
 msgid "The printer may not exist or is unavailable at this time."
 msgstr ""
 
@@ -5916,7 +5940,7 @@
 msgid "There was an unrecoverable USB error."
 msgstr ""
 
-#: ppdc/sample.c:430
+#: ppdc/sample.c:433
 msgid "Thermal Transfer Media"
 msgstr ""
 
@@ -5934,40 +5958,40 @@
 msgid "Too many printer-state-reasons values (%d > %d)."
 msgstr ""
 
-#: ppdc/sample.c:284
+#: ppdc/sample.c:287
 msgid "Transparency"
 msgstr ""
 
-#: ppdc/sample.c:279
+#: ppdc/sample.c:282
 msgid "Tray"
 msgstr ""
 
-#: ppdc/sample.c:256
+#: ppdc/sample.c:259
 msgid "Tray 1"
 msgstr ""
 
-#: ppdc/sample.c:257
+#: ppdc/sample.c:260
 msgid "Tray 2"
 msgstr ""
 
-#: ppdc/sample.c:258
+#: ppdc/sample.c:261
 msgid "Tray 3"
 msgstr ""
 
-#: ppdc/sample.c:259
+#: ppdc/sample.c:262
 msgid "Tray 4"
 msgstr ""
 
-#: cups/tls-darwin.c:670 cups/tls-darwin.c:752 cups/tls-gnutls.c:504
+#: cups/tls-darwin.c:645 cups/tls-darwin.c:727 cups/tls-gnutls.c:504
 #: cups/tls-gnutls.c:586
 msgid "Trust on first use is disabled."
 msgstr ""
 
-#: cups/http-support.c:1528
+#: cups/http-support.c:1533
 msgid "URI Too Long"
 msgstr ""
 
-#: cups/http-support.c:1603
+#: cups/http-support.c:1608
 msgid "URI too large"
 msgstr ""
 
@@ -6019,7 +6043,7 @@
 msgid "Unable to add class"
 msgstr ""
 
-#: backend/ipp.c:1880
+#: backend/ipp.c:1887
 msgid "Unable to add document to print job."
 msgstr ""
 
@@ -6044,11 +6068,11 @@
 msgid "Unable to allocate memory for pages array"
 msgstr ""
 
-#: tools/ippeveprinter.c:1486
+#: tools/ippeveprinter.c:1628
 msgid "Unable to allocate memory for printer"
 msgstr ""
 
-#: backend/ipp.c:2165 backend/ipp.c:2696
+#: backend/ipp.c:2173 backend/ipp.c:2704
 msgid "Unable to cancel print job."
 msgstr ""
 
@@ -6082,7 +6106,7 @@
 msgid "Unable to connect to host."
 msgstr ""
 
-#: backend/ipp.c:723 backend/ipp.c:1275 backend/lpd.c:846 backend/socket.c:314
+#: backend/ipp.c:722 backend/ipp.c:1274 backend/lpd.c:850 backend/socket.c:314
 #: backend/usb-unix.c:103
 msgid "Unable to contact printer, queuing on next printer in class."
 msgstr ""
@@ -6096,7 +6120,7 @@
 msgid "Unable to copy PPD file."
 msgstr ""
 
-#: cups/tls-darwin.c:636 cups/tls-gnutls.c:467
+#: cups/tls-darwin.c:611 cups/tls-gnutls.c:467
 msgid "Unable to create credentials from array."
 msgstr ""
 
@@ -6108,11 +6132,11 @@
 msgid "Unable to create printer."
 msgstr ""
 
-#: cups/tls-darwin.c:1566 cups/tls-gnutls.c:1510
+#: cups/tls-darwin.c:1541 cups/tls-gnutls.c:1511
 msgid "Unable to create server credentials."
 msgstr ""
 
-#: tools/ippeveprinter.c:626
+#: tools/ippeveprinter.c:664
 #, c-format
 msgid "Unable to create spool directory \"%s\": %s"
 msgstr ""
@@ -6137,36 +6161,36 @@
 msgid "Unable to edit cupsd.conf files larger than 1MB"
 msgstr ""
 
-#: cups/tls-darwin.c:1793
+#: cups/tls-darwin.c:1768
 #, c-format
 msgid "Unable to establish a secure connection to host (%d)."
 msgstr ""
 
-#: cups/tls-darwin.c:1754
+#: cups/tls-darwin.c:1729
 msgid "Unable to establish a secure connection to host (certificate chain invalid)."
 msgstr ""
 
-#: cups/tls-darwin.c:1744
+#: cups/tls-darwin.c:1719
 msgid "Unable to establish a secure connection to host (certificate not yet valid)."
 msgstr ""
 
-#: cups/tls-darwin.c:1739
+#: cups/tls-darwin.c:1714
 msgid "Unable to establish a secure connection to host (expired certificate)."
 msgstr ""
 
-#: cups/tls-darwin.c:1749
+#: cups/tls-darwin.c:1724
 msgid "Unable to establish a secure connection to host (host name mismatch)."
 msgstr ""
 
-#: cups/tls-darwin.c:1759
+#: cups/tls-darwin.c:1734
 msgid "Unable to establish a secure connection to host (peer dropped connection before responding)."
 msgstr ""
 
-#: cups/tls-darwin.c:1734
+#: cups/tls-darwin.c:1709
 msgid "Unable to establish a secure connection to host (self-signed certificate)."
 msgstr ""
 
-#: cups/tls-darwin.c:1729
+#: cups/tls-darwin.c:1704
 msgid "Unable to establish a secure connection to host (untrusted certificate)."
 msgstr ""
 
@@ -6174,7 +6198,7 @@
 msgid "Unable to establish a secure connection to host."
 msgstr ""
 
-#: tools/ippeveprinter.c:1461 tools/ippeveprinter.c:1471
+#: tools/ippeveprinter.c:1603 tools/ippeveprinter.c:1613
 #, c-format
 msgid "Unable to execute command \"%s\": %s"
 msgstr ""
@@ -6183,15 +6207,15 @@
 msgid "Unable to find destination for job"
 msgstr ""
 
-#: cups/http-support.c:2094
+#: cups/http-support.c:2099
 msgid "Unable to find printer."
 msgstr ""
 
-#: cups/tls-darwin.c:1579
+#: cups/tls-darwin.c:1554
 msgid "Unable to find server credentials."
 msgstr ""
 
-#: backend/ipp.c:3359
+#: backend/ipp.c:3367
 msgid "Unable to get backend exit status."
 msgstr ""
 
@@ -6219,7 +6243,7 @@
 msgid "Unable to get printer status"
 msgstr ""
 
-#: backend/ipp.c:1017
+#: backend/ipp.c:1016
 msgid "Unable to get printer status."
 msgstr ""
 
@@ -6232,7 +6256,7 @@
 msgid "Unable to locate printer \"%s\"."
 msgstr ""
 
-#: backend/dnssd.c:752 backend/ipp.c:336 backend/lpd.c:181
+#: backend/dnssd.c:752 backend/ipp.c:335 backend/lpd.c:185
 #: backend/socket.c:155
 msgid "Unable to locate printer."
 msgstr ""
@@ -6274,14 +6298,14 @@
 msgid "Unable to open help file."
 msgstr ""
 
-#: backend/ipp.c:377 backend/ipp.c:1620 backend/ipp.c:1833 backend/lpd.c:469
+#: backend/ipp.c:376 backend/ipp.c:1621 backend/ipp.c:1834 backend/lpd.c:473
 #: backend/socket.c:142 backend/usb.c:224 filter/gziptoany.c:65
 #: filter/pstops.c:262
 msgid "Unable to open print file"
 msgstr ""
 
 #: filter/rastertoepson.c:1012 filter/rastertohp.c:681
-#: filter/rastertolabel.c:1133
+#: filter/rastertolabel.c:1134
 msgid "Unable to open raster file"
 msgstr ""
 
@@ -6294,8 +6318,8 @@
 msgid "Unable to read print data."
 msgstr ""
 
-#: tools/ippeveprinter.c:6613 tools/ippeveprinter.c:6631
-#: tools/ippeveprinter.c:6650 tools/ippeveprinter.c:6664
+#: tools/ippeveprinter.c:6861 tools/ippeveprinter.c:6879
+#: tools/ippeveprinter.c:6898 tools/ippeveprinter.c:6912
 #, c-format
 msgid "Unable to register \"%s.%s\": %d"
 msgstr ""
@@ -6304,7 +6328,7 @@
 msgid "Unable to rename job document file."
 msgstr ""
 
-#: cups/dest.c:3265
+#: cups/dest.c:3252
 msgid "Unable to resolve printer-uri."
 msgstr ""
 
@@ -6328,7 +6352,7 @@
 msgid "Unable to set server default"
 msgstr ""
 
-#: backend/ipp.c:3218 backend/ipp.c:3295 backend/ipp.c:3303
+#: backend/ipp.c:3226 backend/ipp.c:3303 backend/ipp.c:3311
 msgid "Unable to start backend process."
 msgstr ""
 
@@ -6349,7 +6373,7 @@
 msgid "Unable to write uncompressed print data: %s"
 msgstr ""
 
-#: cups/http-support.c:1516
+#: cups/http-support.c:1521
 msgid "Unauthorized"
 msgstr ""
 
@@ -6357,7 +6381,7 @@
 msgid "Units"
 msgstr ""
 
-#: cups/http-support.c:1556 cups/http-support.c:1640 cups/ppd.c:313
+#: cups/http-support.c:1561 cups/http-support.c:1645 cups/ppd.c:313
 msgid "Unknown"
 msgstr ""
 
@@ -6366,27 +6390,27 @@
 msgid "Unknown choice \"%s\" for option \"%s\"."
 msgstr ""
 
-#: tools/ippeveprinter.c:3848
+#: tools/ippeveprinter.c:3996
 #, c-format
 msgid "Unknown directive \"%s\" on line %d of \"%s\" ignored."
 msgstr ""
 
-#: backend/ipp.c:519
+#: backend/ipp.c:518
 #, c-format
 msgid "Unknown encryption option value: \"%s\"."
 msgstr ""
 
-#: backend/lpd.c:327
+#: backend/lpd.c:331
 #, c-format
 msgid "Unknown file order: \"%s\"."
 msgstr ""
 
-#: backend/lpd.c:298
+#: backend/lpd.c:302
 #, c-format
 msgid "Unknown format character: \"%c\"."
 msgstr ""
 
-#: cups/hash.c:278
+#: cups/hash.c:279
 msgid "Unknown hash algorithm."
 msgstr ""
 
@@ -6394,7 +6418,7 @@
 msgid "Unknown media size name."
 msgstr ""
 
-#: backend/ipp.c:583
+#: backend/ipp.c:582
 #, c-format
 msgid "Unknown option \"%s\" with value \"%s\"."
 msgstr ""
@@ -6404,7 +6428,7 @@
 msgid "Unknown option \"%s\"."
 msgstr ""
 
-#: backend/lpd.c:313
+#: backend/lpd.c:317
 #, c-format
 msgid "Unknown print mode: \"%s\"."
 msgstr ""
@@ -6427,7 +6451,7 @@
 msgid "Unknown request version."
 msgstr ""
 
-#: cups/http-support.c:1633
+#: cups/http-support.c:1638
 msgid "Unknown scheme in URI"
 msgstr ""
 
@@ -6435,7 +6459,7 @@
 msgid "Unknown service name."
 msgstr ""
 
-#: backend/ipp.c:548
+#: backend/ipp.c:547
 #, c-format
 msgid "Unknown version option value: \"%s\"."
 msgstr ""
@@ -6515,7 +6539,7 @@
 msgid "Unsupported value type"
 msgstr ""
 
-#: cups/http-support.c:1531
+#: cups/http-support.c:1536
 msgid "Upgrade Required"
 msgstr ""
 
@@ -6524,7 +6548,7 @@
 msgid "Usage: %s [options] destination(s)"
 msgstr ""
 
-#: backend/dnssd.c:192 backend/ipp.c:325 backend/lpd.c:168
+#: backend/dnssd.c:192 backend/ipp.c:324 backend/lpd.c:172
 #: backend/socket.c:119 backend/usb.c:170 filter/commandtops.c:57
 #: filter/gziptoany.c:38 filter/pstops.c:223 monitor/bcp.c:48
 #: monitor/tbcp.c:47
@@ -6543,7 +6567,7 @@
 msgid "Usage: cupsctl [options] [param=value ... paramN=valueN]"
 msgstr ""
 
-#: scheduler/main.c:2132
+#: scheduler/main.c:2134
 msgid "Usage: cupsd [options]"
 msgstr ""
 
@@ -6557,7 +6581,7 @@
 "       program | cupstestppd [options] -"
 msgstr ""
 
-#: tools/ippeveprinter.c:7663
+#: tools/ippeveprinter.c:7921
 msgid "Usage: ippeveprinter [options] \"name\""
 msgstr ""
 
@@ -6650,7 +6674,7 @@
 msgid "Usage: snmp [host-or-ip-address]"
 msgstr ""
 
-#: tools/ippeveprinter.c:631
+#: tools/ippeveprinter.c:669
 #, c-format
 msgid "Using spool directory \"%s\"."
 msgstr ""
@@ -6667,7 +6691,7 @@
 msgid "Version uses indefinite length"
 msgstr ""
 
-#: backend/ipp.c:2000
+#: backend/ipp.c:2009
 msgid "Waiting for job to complete."
 msgstr ""
 
@@ -6683,7 +6707,7 @@
 msgid "Warning: This program will be removed in a future version of CUPS."
 msgstr ""
 
-#: cups/http-support.c:1552
+#: cups/http-support.c:1557
 msgid "Web Interface is Disabled"
 msgstr ""
 
@@ -6704,11 +6728,11 @@
 msgid "Your account does not have the necessary privileges."
 msgstr ""
 
-#: ppdc/sample.c:434
+#: ppdc/sample.c:437
 msgid "ZPL Label Printer"
 msgstr ""
 
-#: ppdc/sample.c:357
+#: ppdc/sample.c:360
 msgid "Zebra"
 msgstr ""
 
@@ -8292,433 +8316,443 @@
 msgid "finishing-template.trim-after-pages"
 msgstr ""
 
-#. TRANSLATORS: Finishings
+#. TRANSLATORS: Trim After Every Set
 #: locale/ipp-strings.c:580
+msgid "finishing-template.trim-after-sets"
+msgstr ""
+
+#. TRANSLATORS: Trim After Every Page
+#: locale/ipp-strings.c:582
+msgid "finishing-template.trim-after-sheets"
+msgstr ""
+
+#. TRANSLATORS: Finishings
+#: locale/ipp-strings.c:584
 msgid "finishings"
 msgstr ""
 
 #. TRANSLATORS: Finishings
-#: locale/ipp-strings.c:582
+#: locale/ipp-strings.c:586
 msgid "finishings-col"
 msgstr ""
 
 #. TRANSLATORS: Fold
-#: locale/ipp-strings.c:584
+#: locale/ipp-strings.c:588
 msgid "finishings.10"
 msgstr ""
 
 #. TRANSLATORS: Z Fold
-#: locale/ipp-strings.c:586
+#: locale/ipp-strings.c:590
 msgid "finishings.100"
 msgstr ""
 
 #. TRANSLATORS: Engineering Z Fold
-#: locale/ipp-strings.c:588
+#: locale/ipp-strings.c:592
 msgid "finishings.101"
 msgstr ""
 
 #. TRANSLATORS: Trim
-#: locale/ipp-strings.c:590
+#: locale/ipp-strings.c:594
 msgid "finishings.11"
 msgstr ""
 
 #. TRANSLATORS: Bale
-#: locale/ipp-strings.c:592
+#: locale/ipp-strings.c:596
 msgid "finishings.12"
 msgstr ""
 
 #. TRANSLATORS: Booklet Maker
-#: locale/ipp-strings.c:594
+#: locale/ipp-strings.c:598
 msgid "finishings.13"
 msgstr ""
 
 #. TRANSLATORS: Jog Offset
-#: locale/ipp-strings.c:596
+#: locale/ipp-strings.c:600
 msgid "finishings.14"
 msgstr ""
 
 #. TRANSLATORS: Coat
-#: locale/ipp-strings.c:598
+#: locale/ipp-strings.c:602
 msgid "finishings.15"
 msgstr ""
 
 #. TRANSLATORS: Laminate
-#: locale/ipp-strings.c:600
+#: locale/ipp-strings.c:604
 msgid "finishings.16"
 msgstr ""
 
 #. TRANSLATORS: Staple Top Left
-#: locale/ipp-strings.c:602
+#: locale/ipp-strings.c:606
 msgid "finishings.20"
 msgstr ""
 
 #. TRANSLATORS: Staple Bottom Left
-#: locale/ipp-strings.c:604
+#: locale/ipp-strings.c:608
 msgid "finishings.21"
 msgstr ""
 
 #. TRANSLATORS: Staple Top Right
-#: locale/ipp-strings.c:606
+#: locale/ipp-strings.c:610
 msgid "finishings.22"
 msgstr ""
 
 #. TRANSLATORS: Staple Bottom Right
-#: locale/ipp-strings.c:608
+#: locale/ipp-strings.c:612
 msgid "finishings.23"
 msgstr ""
 
 #. TRANSLATORS: Edge Stitch Left
-#: locale/ipp-strings.c:610
+#: locale/ipp-strings.c:614
 msgid "finishings.24"
 msgstr ""
 
 #. TRANSLATORS: Edge Stitch Top
-#: locale/ipp-strings.c:612
+#: locale/ipp-strings.c:616
 msgid "finishings.25"
 msgstr ""
 
 #. TRANSLATORS: Edge Stitch Right
-#: locale/ipp-strings.c:614
+#: locale/ipp-strings.c:618
 msgid "finishings.26"
 msgstr ""
 
 #. TRANSLATORS: Edge Stitch Bottom
-#: locale/ipp-strings.c:616
+#: locale/ipp-strings.c:620
 msgid "finishings.27"
 msgstr ""
 
 #. TRANSLATORS: 2 Staples on Left
-#: locale/ipp-strings.c:618
+#: locale/ipp-strings.c:622
 msgid "finishings.28"
 msgstr ""
 
 #. TRANSLATORS: 2 Staples on Top
-#: locale/ipp-strings.c:620
+#: locale/ipp-strings.c:624
 msgid "finishings.29"
 msgstr ""
 
 #. TRANSLATORS: None
-#: locale/ipp-strings.c:622
+#: locale/ipp-strings.c:626
 msgid "finishings.3"
 msgstr ""
 
 #. TRANSLATORS: 2 Staples on Right
-#: locale/ipp-strings.c:624
+#: locale/ipp-strings.c:628
 msgid "finishings.30"
 msgstr ""
 
 #. TRANSLATORS: 2 Staples on Bottom
-#: locale/ipp-strings.c:626
+#: locale/ipp-strings.c:630
 msgid "finishings.31"
 msgstr ""
 
 #. TRANSLATORS: 3 Staples on Left
-#: locale/ipp-strings.c:628
+#: locale/ipp-strings.c:632
 msgid "finishings.32"
 msgstr ""
 
 #. TRANSLATORS: 3 Staples on Top
-#: locale/ipp-strings.c:630
+#: locale/ipp-strings.c:634
 msgid "finishings.33"
 msgstr ""
 
 #. TRANSLATORS: 3 Staples on Right
-#: locale/ipp-strings.c:632
+#: locale/ipp-strings.c:636
 msgid "finishings.34"
 msgstr ""
 
 #. TRANSLATORS: 3 Staples on Bottom
-#: locale/ipp-strings.c:634
+#: locale/ipp-strings.c:638
 msgid "finishings.35"
 msgstr ""
 
 #. TRANSLATORS: Staple
-#: locale/ipp-strings.c:636
+#: locale/ipp-strings.c:640
 msgid "finishings.4"
 msgstr ""
 
 #. TRANSLATORS: Punch
-#: locale/ipp-strings.c:638
+#: locale/ipp-strings.c:642
 msgid "finishings.5"
 msgstr ""
 
 #. TRANSLATORS: Bind Left
-#: locale/ipp-strings.c:640
+#: locale/ipp-strings.c:644
 msgid "finishings.50"
 msgstr ""
 
 #. TRANSLATORS: Bind Top
-#: locale/ipp-strings.c:642
+#: locale/ipp-strings.c:646
 msgid "finishings.51"
 msgstr ""
 
 #. TRANSLATORS: Bind Right
-#: locale/ipp-strings.c:644
+#: locale/ipp-strings.c:648
 msgid "finishings.52"
 msgstr ""
 
 #. TRANSLATORS: Bind Bottom
-#: locale/ipp-strings.c:646
+#: locale/ipp-strings.c:650
 msgid "finishings.53"
 msgstr ""
 
 #. TRANSLATORS: Cover
-#: locale/ipp-strings.c:648
+#: locale/ipp-strings.c:652
 msgid "finishings.6"
 msgstr ""
 
 #. TRANSLATORS: Trim Pages
-#: locale/ipp-strings.c:650
+#: locale/ipp-strings.c:654
 msgid "finishings.60"
 msgstr ""
 
 #. TRANSLATORS: Trim Documents
-#: locale/ipp-strings.c:652
+#: locale/ipp-strings.c:656
 msgid "finishings.61"
 msgstr ""
 
 #. TRANSLATORS: Trim Copies
-#: locale/ipp-strings.c:654
+#: locale/ipp-strings.c:658
 msgid "finishings.62"
 msgstr ""
 
 #. TRANSLATORS: Trim Job
-#: locale/ipp-strings.c:656
+#: locale/ipp-strings.c:660
 msgid "finishings.63"
 msgstr ""
 
 #. TRANSLATORS: Bind
-#: locale/ipp-strings.c:658
+#: locale/ipp-strings.c:662
 msgid "finishings.7"
 msgstr ""
 
 #. TRANSLATORS: Punch Top Left
-#: locale/ipp-strings.c:660
+#: locale/ipp-strings.c:664
 msgid "finishings.70"
 msgstr ""
 
 #. TRANSLATORS: Punch Bottom Left
-#: locale/ipp-strings.c:662
+#: locale/ipp-strings.c:666
 msgid "finishings.71"
 msgstr ""
 
 #. TRANSLATORS: Punch Top Right
-#: locale/ipp-strings.c:664
+#: locale/ipp-strings.c:668
 msgid "finishings.72"
 msgstr ""
 
 #. TRANSLATORS: Punch Bottom Right
-#: locale/ipp-strings.c:666
+#: locale/ipp-strings.c:670
 msgid "finishings.73"
 msgstr ""
 
 #. TRANSLATORS: 2-hole Punch Left
-#: locale/ipp-strings.c:668
+#: locale/ipp-strings.c:672
 msgid "finishings.74"
 msgstr ""
 
 #. TRANSLATORS: 2-hole Punch Top
-#: locale/ipp-strings.c:670
+#: locale/ipp-strings.c:674
 msgid "finishings.75"
 msgstr ""
 
 #. TRANSLATORS: 2-hole Punch Right
-#: locale/ipp-strings.c:672
+#: locale/ipp-strings.c:676
 msgid "finishings.76"
 msgstr ""
 
 #. TRANSLATORS: 2-hole Punch Bottom
-#: locale/ipp-strings.c:674
+#: locale/ipp-strings.c:678
 msgid "finishings.77"
 msgstr ""
 
 #. TRANSLATORS: 3-hole Punch Left
-#: locale/ipp-strings.c:676
+#: locale/ipp-strings.c:680
 msgid "finishings.78"
 msgstr ""
 
 #. TRANSLATORS: 3-hole Punch Top
-#: locale/ipp-strings.c:678
+#: locale/ipp-strings.c:682
 msgid "finishings.79"
 msgstr ""
 
 #. TRANSLATORS: Saddle Stitch
-#: locale/ipp-strings.c:680
+#: locale/ipp-strings.c:684
 msgid "finishings.8"
 msgstr ""
 
 #. TRANSLATORS: 3-hole Punch Right
-#: locale/ipp-strings.c:682
+#: locale/ipp-strings.c:686
 msgid "finishings.80"
 msgstr ""
 
 #. TRANSLATORS: 3-hole Punch Bottom
-#: locale/ipp-strings.c:684
+#: locale/ipp-strings.c:688
 msgid "finishings.81"
 msgstr ""
 
 #. TRANSLATORS: 4-hole Punch Left
-#: locale/ipp-strings.c:686
+#: locale/ipp-strings.c:690
 msgid "finishings.82"
 msgstr ""
 
 #. TRANSLATORS: 4-hole Punch Top
-#: locale/ipp-strings.c:688
+#: locale/ipp-strings.c:692
 msgid "finishings.83"
 msgstr ""
 
 #. TRANSLATORS: 4-hole Punch Right
-#: locale/ipp-strings.c:690
+#: locale/ipp-strings.c:694
 msgid "finishings.84"
 msgstr ""
 
 #. TRANSLATORS: 4-hole Punch Bottom
-#: locale/ipp-strings.c:692
+#: locale/ipp-strings.c:696
 msgid "finishings.85"
 msgstr ""
 
 #. TRANSLATORS: Multi-hole Punch Left
-#: locale/ipp-strings.c:694
+#: locale/ipp-strings.c:698
 msgid "finishings.86"
 msgstr ""
 
 #. TRANSLATORS: Multi-hole Punch Top
-#: locale/ipp-strings.c:696
+#: locale/ipp-strings.c:700
 msgid "finishings.87"
 msgstr ""
 
 #. TRANSLATORS: Multi-hole Punch Right
-#: locale/ipp-strings.c:698
+#: locale/ipp-strings.c:702
 msgid "finishings.88"
 msgstr ""
 
 #. TRANSLATORS: Multi-hole Punch Bottom
-#: locale/ipp-strings.c:700
+#: locale/ipp-strings.c:704
 msgid "finishings.89"
 msgstr ""
 
 #. TRANSLATORS: Edge Stitch
-#: locale/ipp-strings.c:702
+#: locale/ipp-strings.c:706
 msgid "finishings.9"
 msgstr ""
 
 #. TRANSLATORS: Accordion Fold
-#: locale/ipp-strings.c:704
+#: locale/ipp-strings.c:708
 msgid "finishings.90"
 msgstr ""
 
 #. TRANSLATORS: Double Gate Fold
-#: locale/ipp-strings.c:706
+#: locale/ipp-strings.c:710
 msgid "finishings.91"
 msgstr ""
 
 #. TRANSLATORS: Gate Fold
-#: locale/ipp-strings.c:708
+#: locale/ipp-strings.c:712
 msgid "finishings.92"
 msgstr ""
 
 #. TRANSLATORS: Half Fold
-#: locale/ipp-strings.c:710
+#: locale/ipp-strings.c:714
 msgid "finishings.93"
 msgstr ""
 
 #. TRANSLATORS: Half Z Fold
-#: locale/ipp-strings.c:712
+#: locale/ipp-strings.c:716
 msgid "finishings.94"
 msgstr ""
 
 #. TRANSLATORS: Left Gate Fold
-#: locale/ipp-strings.c:714
+#: locale/ipp-strings.c:718
 msgid "finishings.95"
 msgstr ""
 
 #. TRANSLATORS: Letter Fold
-#: locale/ipp-strings.c:716
+#: locale/ipp-strings.c:720
 msgid "finishings.96"
 msgstr ""
 
 #. TRANSLATORS: Parallel Fold
-#: locale/ipp-strings.c:718
+#: locale/ipp-strings.c:722
 msgid "finishings.97"
 msgstr ""
 
 #. TRANSLATORS: Poster Fold
-#: locale/ipp-strings.c:720
+#: locale/ipp-strings.c:724
 msgid "finishings.98"
 msgstr ""
 
 #. TRANSLATORS: Right Gate Fold
-#: locale/ipp-strings.c:722
+#: locale/ipp-strings.c:726
 msgid "finishings.99"
 msgstr ""
 
 #. TRANSLATORS: Fold
-#: locale/ipp-strings.c:724
+#: locale/ipp-strings.c:728
 msgid "folding"
 msgstr ""
 
 #. TRANSLATORS: Fold Direction
-#: locale/ipp-strings.c:726
+#: locale/ipp-strings.c:730
 msgid "folding-direction"
 msgstr ""
 
 #. TRANSLATORS: Inward
-#: locale/ipp-strings.c:728
+#: locale/ipp-strings.c:732
 msgid "folding-direction.inward"
 msgstr ""
 
 #. TRANSLATORS: Outward
-#: locale/ipp-strings.c:730
+#: locale/ipp-strings.c:734
 msgid "folding-direction.outward"
 msgstr ""
 
 #. TRANSLATORS: Fold Position
-#: locale/ipp-strings.c:732
+#: locale/ipp-strings.c:736
 msgid "folding-offset"
 msgstr ""
 
 #. TRANSLATORS: Fold Edge
-#: locale/ipp-strings.c:734
+#: locale/ipp-strings.c:738
 msgid "folding-reference-edge"
 msgstr ""
 
 #. TRANSLATORS: Bottom
-#: locale/ipp-strings.c:736
+#: locale/ipp-strings.c:740
 msgid "folding-reference-edge.bottom"
 msgstr ""
 
 #. TRANSLATORS: Left
-#: locale/ipp-strings.c:738
+#: locale/ipp-strings.c:742
 msgid "folding-reference-edge.left"
 msgstr ""
 
 #. TRANSLATORS: Right
-#: locale/ipp-strings.c:740
+#: locale/ipp-strings.c:744
 msgid "folding-reference-edge.right"
 msgstr ""
 
 #. TRANSLATORS: Top
-#: locale/ipp-strings.c:742
+#: locale/ipp-strings.c:746
 msgid "folding-reference-edge.top"
 msgstr ""
 
 #. TRANSLATORS: Font Name
-#: locale/ipp-strings.c:744
+#: locale/ipp-strings.c:748
 msgid "font-name-requested"
 msgstr ""
 
 #. TRANSLATORS: Font Size
-#: locale/ipp-strings.c:746
+#: locale/ipp-strings.c:750
 msgid "font-size-requested"
 msgstr ""
 
 #. TRANSLATORS: Force Front Side
-#: locale/ipp-strings.c:748
+#: locale/ipp-strings.c:752
 msgid "force-front-side"
 msgstr ""
 
 #. TRANSLATORS: From Name
-#: locale/ipp-strings.c:750
+#: locale/ipp-strings.c:754
 msgid "from-name"
 msgstr ""
 
@@ -8735,36 +8769,36 @@
 msgstr ""
 
 #. TRANSLATORS: Imposition Template
-#: locale/ipp-strings.c:752
+#: locale/ipp-strings.c:756
 msgid "imposition-template"
 msgstr ""
 
 #. TRANSLATORS: None
-#: locale/ipp-strings.c:754
+#: locale/ipp-strings.c:758
 msgid "imposition-template.none"
 msgstr ""
 
 #. TRANSLATORS: Signature
-#: locale/ipp-strings.c:756
+#: locale/ipp-strings.c:760
 msgid "imposition-template.signature"
 msgstr ""
 
 #. TRANSLATORS: Insert Page Number
-#: locale/ipp-strings.c:758
+#: locale/ipp-strings.c:762
 msgid "insert-after-page-number"
 msgstr ""
 
 #. TRANSLATORS: Insert Count
-#: locale/ipp-strings.c:760
+#: locale/ipp-strings.c:764
 msgid "insert-count"
 msgstr ""
 
 #. TRANSLATORS: Insert Sheet
-#: locale/ipp-strings.c:762
+#: locale/ipp-strings.c:766
 msgid "insert-sheet"
 msgstr ""
 
-#: tools/ippeveprinter.c:4702
+#: tools/ippeveprinter.c:4850
 #, c-format
 msgid "ippeveprinter: Unable to open \"%s\": %s on line %d."
 msgstr ""
@@ -8920,267 +8954,267 @@
 msgstr ""
 
 #. TRANSLATORS: Job Account ID
-#: locale/ipp-strings.c:764
+#: locale/ipp-strings.c:768
 msgid "job-account-id"
 msgstr ""
 
 #. TRANSLATORS: Job Account Type
-#: locale/ipp-strings.c:766
+#: locale/ipp-strings.c:770
 msgid "job-account-type"
 msgstr ""
 
 #. TRANSLATORS: General
-#: locale/ipp-strings.c:768
+#: locale/ipp-strings.c:772
 msgid "job-account-type.general"
 msgstr ""
 
 #. TRANSLATORS: Group
-#: locale/ipp-strings.c:770
+#: locale/ipp-strings.c:774
 msgid "job-account-type.group"
 msgstr ""
 
 #. TRANSLATORS: None
-#: locale/ipp-strings.c:772
+#: locale/ipp-strings.c:776
 msgid "job-account-type.none"
 msgstr ""
 
 #. TRANSLATORS: Job Accounting Output Bin
-#: locale/ipp-strings.c:774
+#: locale/ipp-strings.c:778
 msgid "job-accounting-output-bin"
 msgstr ""
 
 #. TRANSLATORS: Job Accounting Sheets
-#: locale/ipp-strings.c:776
+#: locale/ipp-strings.c:780
 msgid "job-accounting-sheets"
 msgstr ""
 
 #. TRANSLATORS: Type of Job Accounting Sheets
-#: locale/ipp-strings.c:778
+#: locale/ipp-strings.c:782
 msgid "job-accounting-sheets-type"
 msgstr ""
 
 #. TRANSLATORS: None
-#: locale/ipp-strings.c:780
+#: locale/ipp-strings.c:784
 msgid "job-accounting-sheets-type.none"
 msgstr ""
 
 #. TRANSLATORS: Standard
-#: locale/ipp-strings.c:782
+#: locale/ipp-strings.c:786
 msgid "job-accounting-sheets-type.standard"
 msgstr ""
 
 #. TRANSLATORS: Job Accounting User ID
-#: locale/ipp-strings.c:784
+#: locale/ipp-strings.c:788
 msgid "job-accounting-user-id"
 msgstr ""
 
 #. TRANSLATORS: Job Cancel After
-#: locale/ipp-strings.c:786
+#: locale/ipp-strings.c:790
 msgid "job-cancel-after"
 msgstr ""
 
 #. TRANSLATORS: Copies
-#: locale/ipp-strings.c:788
+#: locale/ipp-strings.c:792
 msgid "job-copies"
 msgstr ""
 
 #. TRANSLATORS: Back Cover
-#: locale/ipp-strings.c:790
+#: locale/ipp-strings.c:794
 msgid "job-cover-back"
 msgstr ""
 
 #. TRANSLATORS: Front Cover
-#: locale/ipp-strings.c:792
+#: locale/ipp-strings.c:796
 msgid "job-cover-front"
 msgstr ""
 
 #. TRANSLATORS: Delay Output Until
-#: locale/ipp-strings.c:794
+#: locale/ipp-strings.c:798
 msgid "job-delay-output-until"
 msgstr ""
 
 #. TRANSLATORS: Delay Output Until
-#: locale/ipp-strings.c:796
+#: locale/ipp-strings.c:800
 msgid "job-delay-output-until-time"
 msgstr ""
 
 #. TRANSLATORS: Daytime
-#: locale/ipp-strings.c:798
+#: locale/ipp-strings.c:802
 msgid "job-delay-output-until.day-time"
 msgstr ""
 
 #. TRANSLATORS: Evening
-#: locale/ipp-strings.c:800
+#: locale/ipp-strings.c:804
 msgid "job-delay-output-until.evening"
 msgstr ""
 
 #. TRANSLATORS: Released
-#: locale/ipp-strings.c:802
+#: locale/ipp-strings.c:806
 msgid "job-delay-output-until.indefinite"
 msgstr ""
 
 #. TRANSLATORS: Night
-#: locale/ipp-strings.c:804
+#: locale/ipp-strings.c:808
 msgid "job-delay-output-until.night"
 msgstr ""
 
 #. TRANSLATORS: No Delay
-#: locale/ipp-strings.c:806
+#: locale/ipp-strings.c:810
 msgid "job-delay-output-until.no-delay-output"
 msgstr ""
 
 #. TRANSLATORS: Second Shift
-#: locale/ipp-strings.c:808
+#: locale/ipp-strings.c:812
 msgid "job-delay-output-until.second-shift"
 msgstr ""
 
 #. TRANSLATORS: Third Shift
-#: locale/ipp-strings.c:810
+#: locale/ipp-strings.c:814
 msgid "job-delay-output-until.third-shift"
 msgstr ""
 
 #. TRANSLATORS: Weekend
-#: locale/ipp-strings.c:812
+#: locale/ipp-strings.c:816
 msgid "job-delay-output-until.weekend"
 msgstr ""
 
 #. TRANSLATORS: On Error
-#: locale/ipp-strings.c:814
+#: locale/ipp-strings.c:818
 msgid "job-error-action"
 msgstr ""
 
 #. TRANSLATORS: Abort Job
-#: locale/ipp-strings.c:816
+#: locale/ipp-strings.c:820
 msgid "job-error-action.abort-job"
 msgstr ""
 
 #. TRANSLATORS: Cancel Job
-#: locale/ipp-strings.c:818
+#: locale/ipp-strings.c:822
 msgid "job-error-action.cancel-job"
 msgstr ""
 
 #. TRANSLATORS: Continue Job
-#: locale/ipp-strings.c:820
+#: locale/ipp-strings.c:824
 msgid "job-error-action.continue-job"
 msgstr ""
 
 #. TRANSLATORS: Suspend Job
-#: locale/ipp-strings.c:822
+#: locale/ipp-strings.c:826
 msgid "job-error-action.suspend-job"
 msgstr ""
 
 #. TRANSLATORS: Print Error Sheet
-#: locale/ipp-strings.c:824
+#: locale/ipp-strings.c:828
 msgid "job-error-sheet"
 msgstr ""
 
 #. TRANSLATORS: Type of Error Sheet
-#: locale/ipp-strings.c:826
+#: locale/ipp-strings.c:830
 msgid "job-error-sheet-type"
 msgstr ""
 
 #. TRANSLATORS: None
-#: locale/ipp-strings.c:828
+#: locale/ipp-strings.c:832
 msgid "job-error-sheet-type.none"
 msgstr ""
 
 #. TRANSLATORS: Standard
-#: locale/ipp-strings.c:830
+#: locale/ipp-strings.c:834
 msgid "job-error-sheet-type.standard"
 msgstr ""
 
 #. TRANSLATORS: Print Error Sheet
-#: locale/ipp-strings.c:832
+#: locale/ipp-strings.c:836
 msgid "job-error-sheet-when"
 msgstr ""
 
 #. TRANSLATORS: Always
-#: locale/ipp-strings.c:834
+#: locale/ipp-strings.c:838
 msgid "job-error-sheet-when.always"
 msgstr ""
 
 #. TRANSLATORS: On Error
-#: locale/ipp-strings.c:836
+#: locale/ipp-strings.c:840
 msgid "job-error-sheet-when.on-error"
 msgstr ""
 
 #. TRANSLATORS: Job Finishings
-#: locale/ipp-strings.c:838
+#: locale/ipp-strings.c:842
 msgid "job-finishings"
 msgstr ""
 
 #. TRANSLATORS: Hold Until
-#: locale/ipp-strings.c:840
+#: locale/ipp-strings.c:844
 msgid "job-hold-until"
 msgstr ""
 
 #. TRANSLATORS: Hold Until
-#: locale/ipp-strings.c:842
+#: locale/ipp-strings.c:846
 msgid "job-hold-until-time"
 msgstr ""
 
 #. TRANSLATORS: Daytime
-#: locale/ipp-strings.c:844
+#: locale/ipp-strings.c:848
 msgid "job-hold-until.day-time"
 msgstr ""
 
 #. TRANSLATORS: Evening
-#: locale/ipp-strings.c:846
+#: locale/ipp-strings.c:850
 msgid "job-hold-until.evening"
 msgstr ""
 
 #. TRANSLATORS: Released
-#: locale/ipp-strings.c:848
+#: locale/ipp-strings.c:852
 msgid "job-hold-until.indefinite"
 msgstr ""
 
 #. TRANSLATORS: Night
-#: locale/ipp-strings.c:850
+#: locale/ipp-strings.c:854
 msgid "job-hold-until.night"
 msgstr ""
 
 #. TRANSLATORS: No Hold
-#: locale/ipp-strings.c:852
+#: locale/ipp-strings.c:856
 msgid "job-hold-until.no-hold"
 msgstr ""
 
 #. TRANSLATORS: Second Shift
-#: locale/ipp-strings.c:854
+#: locale/ipp-strings.c:858
 msgid "job-hold-until.second-shift"
 msgstr ""
 
 #. TRANSLATORS: Third Shift
-#: locale/ipp-strings.c:856
+#: locale/ipp-strings.c:860
 msgid "job-hold-until.third-shift"
 msgstr ""
 
 #. TRANSLATORS: Weekend
-#: locale/ipp-strings.c:858
+#: locale/ipp-strings.c:862
 msgid "job-hold-until.weekend"
 msgstr ""
 
 #. TRANSLATORS: Job Mandatory Attributes
-#: locale/ipp-strings.c:860
+#: locale/ipp-strings.c:864
 msgid "job-mandatory-attributes"
 msgstr ""
 
 #. TRANSLATORS: Title
-#: locale/ipp-strings.c:862
+#: locale/ipp-strings.c:866
 msgid "job-name"
 msgstr ""
 
 #. TRANSLATORS: Job Pages
-#: locale/ipp-strings.c:864
+#: locale/ipp-strings.c:868
 msgid "job-pages"
 msgstr ""
 
 #. TRANSLATORS: Job Pages
-#: locale/ipp-strings.c:866
+#: locale/ipp-strings.c:870
 msgid "job-pages-col"
 msgstr ""
 
 #. TRANSLATORS: Job Phone Number
-#: locale/ipp-strings.c:868
+#: locale/ipp-strings.c:872
 msgid "job-phone-number"
 msgstr ""
 
@@ -9189,627 +9223,627 @@
 msgstr ""
 
 #. TRANSLATORS: Job Priority
-#: locale/ipp-strings.c:870
+#: locale/ipp-strings.c:874
 msgid "job-priority"
 msgstr ""
 
 #. TRANSLATORS: Job Privacy Attributes
-#: locale/ipp-strings.c:872
+#: locale/ipp-strings.c:876
 msgid "job-privacy-attributes"
 msgstr ""
 
 #. TRANSLATORS: All
-#: locale/ipp-strings.c:874
+#: locale/ipp-strings.c:878
 msgid "job-privacy-attributes.all"
 msgstr ""
 
 #. TRANSLATORS: Default
-#: locale/ipp-strings.c:876
+#: locale/ipp-strings.c:880
 msgid "job-privacy-attributes.default"
 msgstr ""
 
 #. TRANSLATORS: Job Description
-#: locale/ipp-strings.c:878
+#: locale/ipp-strings.c:882
 msgid "job-privacy-attributes.job-description"
 msgstr ""
 
 #. TRANSLATORS: Job Template
-#: locale/ipp-strings.c:880
+#: locale/ipp-strings.c:884
 msgid "job-privacy-attributes.job-template"
 msgstr ""
 
 #. TRANSLATORS: None
-#: locale/ipp-strings.c:882
+#: locale/ipp-strings.c:886
 msgid "job-privacy-attributes.none"
 msgstr ""
 
 #. TRANSLATORS: Job Privacy Scope
-#: locale/ipp-strings.c:884
+#: locale/ipp-strings.c:888
 msgid "job-privacy-scope"
 msgstr ""
 
 #. TRANSLATORS: All
-#: locale/ipp-strings.c:886
+#: locale/ipp-strings.c:890
 msgid "job-privacy-scope.all"
 msgstr ""
 
 #. TRANSLATORS: Default
-#: locale/ipp-strings.c:888
+#: locale/ipp-strings.c:892
 msgid "job-privacy-scope.default"
 msgstr ""
 
 #. TRANSLATORS: None
-#: locale/ipp-strings.c:890
+#: locale/ipp-strings.c:894
 msgid "job-privacy-scope.none"
 msgstr ""
 
 #. TRANSLATORS: Owner
-#: locale/ipp-strings.c:892
+#: locale/ipp-strings.c:896
 msgid "job-privacy-scope.owner"
 msgstr ""
 
 #. TRANSLATORS: Job Recipient Name
-#: locale/ipp-strings.c:894
+#: locale/ipp-strings.c:898
 msgid "job-recipient-name"
 msgstr ""
 
 #. TRANSLATORS: Job Retain Until
-#: locale/ipp-strings.c:896
+#: locale/ipp-strings.c:900
 msgid "job-retain-until"
 msgstr ""
 
 #. TRANSLATORS: Job Retain Until Interval
-#: locale/ipp-strings.c:898
+#: locale/ipp-strings.c:902
 msgid "job-retain-until-interval"
 msgstr ""
 
 #. TRANSLATORS: Job Retain Until Time
-#: locale/ipp-strings.c:900
+#: locale/ipp-strings.c:904
 msgid "job-retain-until-time"
 msgstr ""
 
 #. TRANSLATORS: End Of Day
-#: locale/ipp-strings.c:902
+#: locale/ipp-strings.c:906
 msgid "job-retain-until.end-of-day"
 msgstr ""
 
 #. TRANSLATORS: End Of Month
-#: locale/ipp-strings.c:904
+#: locale/ipp-strings.c:908
 msgid "job-retain-until.end-of-month"
 msgstr ""
 
 #. TRANSLATORS: End Of Week
-#: locale/ipp-strings.c:906
+#: locale/ipp-strings.c:910
 msgid "job-retain-until.end-of-week"
 msgstr ""
 
 #. TRANSLATORS: Indefinite
-#: locale/ipp-strings.c:908
+#: locale/ipp-strings.c:912
 msgid "job-retain-until.indefinite"
 msgstr ""
 
 #. TRANSLATORS: None
-#: locale/ipp-strings.c:910
+#: locale/ipp-strings.c:914
 msgid "job-retain-until.none"
 msgstr ""
 
 #. TRANSLATORS: Job Save Disposition
-#: locale/ipp-strings.c:912
+#: locale/ipp-strings.c:916
 msgid "job-save-disposition"
 msgstr ""
 
 #. TRANSLATORS: Job Sheet Message
-#: locale/ipp-strings.c:914
+#: locale/ipp-strings.c:918
 msgid "job-sheet-message"
 msgstr ""
 
 #. TRANSLATORS: Banner Page
-#: locale/ipp-strings.c:916
+#: locale/ipp-strings.c:920
 msgid "job-sheets"
 msgstr ""
 
 #. TRANSLATORS: Banner Page
-#: locale/ipp-strings.c:918
+#: locale/ipp-strings.c:922
 msgid "job-sheets-col"
 msgstr ""
 
 #. TRANSLATORS: First Page in Document
-#: locale/ipp-strings.c:920
+#: locale/ipp-strings.c:924
 msgid "job-sheets.first-print-stream-page"
 msgstr ""
 
 #. TRANSLATORS: Start and End Sheets
-#: locale/ipp-strings.c:922
+#: locale/ipp-strings.c:926
 msgid "job-sheets.job-both-sheet"
 msgstr ""
 
 #. TRANSLATORS: End Sheet
-#: locale/ipp-strings.c:924
+#: locale/ipp-strings.c:928
 msgid "job-sheets.job-end-sheet"
 msgstr ""
 
 #. TRANSLATORS: Start Sheet
-#: locale/ipp-strings.c:926
+#: locale/ipp-strings.c:930
 msgid "job-sheets.job-start-sheet"
 msgstr ""
 
 #. TRANSLATORS: None
-#: locale/ipp-strings.c:928
+#: locale/ipp-strings.c:932
 msgid "job-sheets.none"
 msgstr ""
 
 #. TRANSLATORS: Standard
-#: locale/ipp-strings.c:930
+#: locale/ipp-strings.c:934
 msgid "job-sheets.standard"
 msgstr ""
 
 #. TRANSLATORS: Job State
-#: locale/ipp-strings.c:932
+#: locale/ipp-strings.c:936
 msgid "job-state"
 msgstr ""
 
 #. TRANSLATORS: Job State Message
-#: locale/ipp-strings.c:934
+#: locale/ipp-strings.c:938
 msgid "job-state-message"
 msgstr ""
 
 #. TRANSLATORS: Detailed Job State
-#: locale/ipp-strings.c:936
+#: locale/ipp-strings.c:940
 msgid "job-state-reasons"
 msgstr ""
 
 #. TRANSLATORS: Stopping
-#: locale/ipp-strings.c:938
+#: locale/ipp-strings.c:942
 msgid "job-state-reasons.aborted-by-system"
 msgstr ""
 
 #. TRANSLATORS: Account Authorization Failed
-#: locale/ipp-strings.c:940
+#: locale/ipp-strings.c:944
 msgid "job-state-reasons.account-authorization-failed"
 msgstr ""
 
 #. TRANSLATORS: Account Closed
-#: locale/ipp-strings.c:942
+#: locale/ipp-strings.c:946
 msgid "job-state-reasons.account-closed"
 msgstr ""
 
 #. TRANSLATORS: Account Info Needed
-#: locale/ipp-strings.c:944
+#: locale/ipp-strings.c:948
 msgid "job-state-reasons.account-info-needed"
 msgstr ""
 
 #. TRANSLATORS: Account Limit Reached
-#: locale/ipp-strings.c:946
+#: locale/ipp-strings.c:950
 msgid "job-state-reasons.account-limit-reached"
 msgstr ""
 
 #. TRANSLATORS: Decompression error
-#: locale/ipp-strings.c:948
+#: locale/ipp-strings.c:952
 msgid "job-state-reasons.compression-error"
 msgstr ""
 
 #. TRANSLATORS: Conflicting Attributes
-#: locale/ipp-strings.c:950
+#: locale/ipp-strings.c:954
 msgid "job-state-reasons.conflicting-attributes"
 msgstr ""
 
 #. TRANSLATORS: Connected To Destination
-#: locale/ipp-strings.c:952
+#: locale/ipp-strings.c:956
 msgid "job-state-reasons.connected-to-destination"
 msgstr ""
 
 #. TRANSLATORS: Connecting To Destination
-#: locale/ipp-strings.c:954
+#: locale/ipp-strings.c:958
 msgid "job-state-reasons.connecting-to-destination"
 msgstr ""
 
 #. TRANSLATORS: Destination Uri Failed
-#: locale/ipp-strings.c:956
+#: locale/ipp-strings.c:960
 msgid "job-state-reasons.destination-uri-failed"
 msgstr ""
 
 #. TRANSLATORS: Digital Signature Did Not Verify
-#: locale/ipp-strings.c:958
+#: locale/ipp-strings.c:962
 msgid "job-state-reasons.digital-signature-did-not-verify"
 msgstr ""
 
 #. TRANSLATORS: Digital Signature Type Not Supported
-#: locale/ipp-strings.c:960
+#: locale/ipp-strings.c:964
 msgid "job-state-reasons.digital-signature-type-not-supported"
 msgstr ""
 
 #. TRANSLATORS: Document Access Error
-#: locale/ipp-strings.c:962
+#: locale/ipp-strings.c:966
 msgid "job-state-reasons.document-access-error"
 msgstr ""
 
 #. TRANSLATORS: Document Format Error
-#: locale/ipp-strings.c:964
+#: locale/ipp-strings.c:968
 msgid "job-state-reasons.document-format-error"
 msgstr ""
 
 #. TRANSLATORS: Document Password Error
-#: locale/ipp-strings.c:966
+#: locale/ipp-strings.c:970
 msgid "job-state-reasons.document-password-error"
 msgstr ""
 
 #. TRANSLATORS: Document Permission Error
-#: locale/ipp-strings.c:968
+#: locale/ipp-strings.c:972
 msgid "job-state-reasons.document-permission-error"
 msgstr ""
 
 #. TRANSLATORS: Document Security Error
-#: locale/ipp-strings.c:970
+#: locale/ipp-strings.c:974
 msgid "job-state-reasons.document-security-error"
 msgstr ""
 
 #. TRANSLATORS: Document Unprintable Error
-#: locale/ipp-strings.c:972
+#: locale/ipp-strings.c:976
 msgid "job-state-reasons.document-unprintable-error"
 msgstr ""
 
 #. TRANSLATORS: Errors Detected
-#: locale/ipp-strings.c:974
+#: locale/ipp-strings.c:978
 msgid "job-state-reasons.errors-detected"
 msgstr ""
 
 #. TRANSLATORS: Canceled at printer
-#: locale/ipp-strings.c:976
+#: locale/ipp-strings.c:980
 msgid "job-state-reasons.job-canceled-at-device"
 msgstr ""
 
 #. TRANSLATORS: Canceled by operator
-#: locale/ipp-strings.c:978
+#: locale/ipp-strings.c:982
 msgid "job-state-reasons.job-canceled-by-operator"
 msgstr ""
 
 #. TRANSLATORS: Canceled by user
-#: locale/ipp-strings.c:980
+#: locale/ipp-strings.c:984
 msgid "job-state-reasons.job-canceled-by-user"
 msgstr ""
 
 #. TRANSLATORS:
-#: locale/ipp-strings.c:982
+#: locale/ipp-strings.c:986
 msgid "job-state-reasons.job-completed-successfully"
 msgstr ""
 
 #. TRANSLATORS: Completed with errors
-#: locale/ipp-strings.c:984
+#: locale/ipp-strings.c:988
 msgid "job-state-reasons.job-completed-with-errors"
 msgstr ""
 
 #. TRANSLATORS: Completed with warnings
-#: locale/ipp-strings.c:986
+#: locale/ipp-strings.c:990
 msgid "job-state-reasons.job-completed-with-warnings"
 msgstr ""
 
 #. TRANSLATORS: Insufficient data
-#: locale/ipp-strings.c:988
+#: locale/ipp-strings.c:992
 msgid "job-state-reasons.job-data-insufficient"
 msgstr ""
 
 #. TRANSLATORS: Job Delay Output Until Specified
-#: locale/ipp-strings.c:990
+#: locale/ipp-strings.c:994
 msgid "job-state-reasons.job-delay-output-until-specified"
 msgstr ""
 
 #. TRANSLATORS: Job Digital Signature Wait
-#: locale/ipp-strings.c:992
+#: locale/ipp-strings.c:996
 msgid "job-state-reasons.job-digital-signature-wait"
 msgstr ""
 
 #. TRANSLATORS: Job Fetchable
-#: locale/ipp-strings.c:994
+#: locale/ipp-strings.c:998
 msgid "job-state-reasons.job-fetchable"
 msgstr ""
 
 #. TRANSLATORS: Job Held For Review
-#: locale/ipp-strings.c:996
+#: locale/ipp-strings.c:1000
 msgid "job-state-reasons.job-held-for-review"
 msgstr ""
 
 #. TRANSLATORS: Job held
-#: locale/ipp-strings.c:998
+#: locale/ipp-strings.c:1002
 msgid "job-state-reasons.job-hold-until-specified"
 msgstr ""
 
 #. TRANSLATORS: Incoming
-#: locale/ipp-strings.c:1000
+#: locale/ipp-strings.c:1004
 msgid "job-state-reasons.job-incoming"
 msgstr ""
 
 #. TRANSLATORS: Interpreting
-#: locale/ipp-strings.c:1002
+#: locale/ipp-strings.c:1006
 msgid "job-state-reasons.job-interpreting"
 msgstr ""
 
 #. TRANSLATORS: Outgoing
-#: locale/ipp-strings.c:1004
+#: locale/ipp-strings.c:1008
 msgid "job-state-reasons.job-outgoing"
 msgstr ""
 
 #. TRANSLATORS: Job Password Wait
-#: locale/ipp-strings.c:1006
+#: locale/ipp-strings.c:1010
 msgid "job-state-reasons.job-password-wait"
 msgstr ""
 
 #. TRANSLATORS: Job Printed Successfully
-#: locale/ipp-strings.c:1008
+#: locale/ipp-strings.c:1012
 msgid "job-state-reasons.job-printed-successfully"
 msgstr ""
 
 #. TRANSLATORS: Job Printed With Errors
-#: locale/ipp-strings.c:1010
+#: locale/ipp-strings.c:1014
 msgid "job-state-reasons.job-printed-with-errors"
 msgstr ""
 
 #. TRANSLATORS: Job Printed With Warnings
-#: locale/ipp-strings.c:1012
+#: locale/ipp-strings.c:1016
 msgid "job-state-reasons.job-printed-with-warnings"
 msgstr ""
 
 #. TRANSLATORS: Printing
-#: locale/ipp-strings.c:1014
+#: locale/ipp-strings.c:1018
 msgid "job-state-reasons.job-printing"
 msgstr ""
 
 #. TRANSLATORS: Preparing to print
-#: locale/ipp-strings.c:1016
+#: locale/ipp-strings.c:1020
 msgid "job-state-reasons.job-queued"
 msgstr ""
 
 #. TRANSLATORS: Processing document
-#: locale/ipp-strings.c:1018
+#: locale/ipp-strings.c:1022
 msgid "job-state-reasons.job-queued-for-marker"
 msgstr ""
 
 #. TRANSLATORS: Job Release Wait
-#: locale/ipp-strings.c:1020
+#: locale/ipp-strings.c:1024
 msgid "job-state-reasons.job-release-wait"
 msgstr ""
 
 #. TRANSLATORS: Restartable
-#: locale/ipp-strings.c:1022
+#: locale/ipp-strings.c:1026
 msgid "job-state-reasons.job-restartable"
 msgstr ""
 
 #. TRANSLATORS: Job Resuming
-#: locale/ipp-strings.c:1024
+#: locale/ipp-strings.c:1028
 msgid "job-state-reasons.job-resuming"
 msgstr ""
 
 #. TRANSLATORS: Job Saved Successfully
-#: locale/ipp-strings.c:1026
+#: locale/ipp-strings.c:1030
 msgid "job-state-reasons.job-saved-successfully"
 msgstr ""
 
 #. TRANSLATORS: Job Saved With Errors
-#: locale/ipp-strings.c:1028
+#: locale/ipp-strings.c:1032
 msgid "job-state-reasons.job-saved-with-errors"
 msgstr ""
 
 #. TRANSLATORS: Job Saved With Warnings
-#: locale/ipp-strings.c:1030
+#: locale/ipp-strings.c:1034
 msgid "job-state-reasons.job-saved-with-warnings"
 msgstr ""
 
 #. TRANSLATORS: Job Saving
-#: locale/ipp-strings.c:1032
+#: locale/ipp-strings.c:1036
 msgid "job-state-reasons.job-saving"
 msgstr ""
 
 #. TRANSLATORS: Job Spooling
-#: locale/ipp-strings.c:1034
+#: locale/ipp-strings.c:1038
 msgid "job-state-reasons.job-spooling"
 msgstr ""
 
 #. TRANSLATORS: Job Streaming
-#: locale/ipp-strings.c:1036
+#: locale/ipp-strings.c:1040
 msgid "job-state-reasons.job-streaming"
 msgstr ""
 
 #. TRANSLATORS: Suspended
-#: locale/ipp-strings.c:1038
+#: locale/ipp-strings.c:1042
 msgid "job-state-reasons.job-suspended"
 msgstr ""
 
 #. TRANSLATORS: Job Suspended By Operator
-#: locale/ipp-strings.c:1040
+#: locale/ipp-strings.c:1044
 msgid "job-state-reasons.job-suspended-by-operator"
 msgstr ""
 
 #. TRANSLATORS: Job Suspended By System
-#: locale/ipp-strings.c:1042
+#: locale/ipp-strings.c:1046
 msgid "job-state-reasons.job-suspended-by-system"
 msgstr ""
 
 #. TRANSLATORS: Job Suspended By User
-#: locale/ipp-strings.c:1044
+#: locale/ipp-strings.c:1048
 msgid "job-state-reasons.job-suspended-by-user"
 msgstr ""
 
 #. TRANSLATORS: Job Suspending
-#: locale/ipp-strings.c:1046
+#: locale/ipp-strings.c:1050
 msgid "job-state-reasons.job-suspending"
 msgstr ""
 
 #. TRANSLATORS: Job Transferring
-#: locale/ipp-strings.c:1048
+#: locale/ipp-strings.c:1052
 msgid "job-state-reasons.job-transferring"
 msgstr ""
 
 #. TRANSLATORS: Transforming
-#: locale/ipp-strings.c:1050
+#: locale/ipp-strings.c:1054
 msgid "job-state-reasons.job-transforming"
 msgstr ""
 
 #. TRANSLATORS: None
-#: locale/ipp-strings.c:1052
+#: locale/ipp-strings.c:1056
 msgid "job-state-reasons.none"
 msgstr ""
 
 #. TRANSLATORS: Printer offline
-#: locale/ipp-strings.c:1054
+#: locale/ipp-strings.c:1058
 msgid "job-state-reasons.printer-stopped"
 msgstr ""
 
 #. TRANSLATORS: Printer partially stopped
-#: locale/ipp-strings.c:1056
+#: locale/ipp-strings.c:1060
 msgid "job-state-reasons.printer-stopped-partly"
 msgstr ""
 
 #. TRANSLATORS: Stopping
-#: locale/ipp-strings.c:1058
+#: locale/ipp-strings.c:1062
 msgid "job-state-reasons.processing-to-stop-point"
 msgstr ""
 
 #. TRANSLATORS: Ready
-#: locale/ipp-strings.c:1060
+#: locale/ipp-strings.c:1064
 msgid "job-state-reasons.queued-in-device"
 msgstr ""
 
 #. TRANSLATORS: Resources Are Not Ready
-#: locale/ipp-strings.c:1062
+#: locale/ipp-strings.c:1066
 msgid "job-state-reasons.resources-are-not-ready"
 msgstr ""
 
 #. TRANSLATORS: Resources Are Not Supported
-#: locale/ipp-strings.c:1064
+#: locale/ipp-strings.c:1068
 msgid "job-state-reasons.resources-are-not-supported"
 msgstr ""
 
 #. TRANSLATORS: Service offline
-#: locale/ipp-strings.c:1066
+#: locale/ipp-strings.c:1070
 msgid "job-state-reasons.service-off-line"
 msgstr ""
 
 #. TRANSLATORS: Submission Interrupted
-#: locale/ipp-strings.c:1068
+#: locale/ipp-strings.c:1072
 msgid "job-state-reasons.submission-interrupted"
 msgstr ""
 
 #. TRANSLATORS: Unsupported Attributes Or Values
-#: locale/ipp-strings.c:1070
+#: locale/ipp-strings.c:1074
 msgid "job-state-reasons.unsupported-attributes-or-values"
 msgstr ""
 
 #. TRANSLATORS: Unsupported Compression
-#: locale/ipp-strings.c:1072
+#: locale/ipp-strings.c:1076
 msgid "job-state-reasons.unsupported-compression"
 msgstr ""
 
 #. TRANSLATORS: Unsupported Document Format
-#: locale/ipp-strings.c:1074
+#: locale/ipp-strings.c:1078
 msgid "job-state-reasons.unsupported-document-format"
 msgstr ""
 
 #. TRANSLATORS: Waiting For User Action
-#: locale/ipp-strings.c:1076
+#: locale/ipp-strings.c:1080
 msgid "job-state-reasons.waiting-for-user-action"
 msgstr ""
 
 #. TRANSLATORS: Warnings Detected
-#: locale/ipp-strings.c:1078
+#: locale/ipp-strings.c:1082
 msgid "job-state-reasons.warnings-detected"
 msgstr ""
 
 #. TRANSLATORS: Pending
-#: locale/ipp-strings.c:1080
+#: locale/ipp-strings.c:1084
 msgid "job-state.3"
 msgstr ""
 
 #. TRANSLATORS: Held
-#: locale/ipp-strings.c:1082
+#: locale/ipp-strings.c:1086
 msgid "job-state.4"
 msgstr ""
 
 #. TRANSLATORS: Processing
-#: locale/ipp-strings.c:1084
+#: locale/ipp-strings.c:1088
 msgid "job-state.5"
 msgstr ""
 
 #. TRANSLATORS: Stopped
-#: locale/ipp-strings.c:1086
+#: locale/ipp-strings.c:1090
 msgid "job-state.6"
 msgstr ""
 
 #. TRANSLATORS: Canceled
-#: locale/ipp-strings.c:1088
+#: locale/ipp-strings.c:1092
 msgid "job-state.7"
 msgstr ""
 
 #. TRANSLATORS: Aborted
-#: locale/ipp-strings.c:1090
+#: locale/ipp-strings.c:1094
 msgid "job-state.8"
 msgstr ""
 
 #. TRANSLATORS: Completed
-#: locale/ipp-strings.c:1092
+#: locale/ipp-strings.c:1096
 msgid "job-state.9"
 msgstr ""
 
 #. TRANSLATORS: Laminate Pages
-#: locale/ipp-strings.c:1094
+#: locale/ipp-strings.c:1098
 msgid "laminating"
 msgstr ""
 
 #. TRANSLATORS: Laminate
-#: locale/ipp-strings.c:1096
+#: locale/ipp-strings.c:1100
 msgid "laminating-sides"
 msgstr ""
 
 #. TRANSLATORS: Back Only
-#: locale/ipp-strings.c:1098
+#: locale/ipp-strings.c:1102
 msgid "laminating-sides.back"
 msgstr ""
 
 #. TRANSLATORS: Front and Back
-#: locale/ipp-strings.c:1100
+#: locale/ipp-strings.c:1104
 msgid "laminating-sides.both"
 msgstr ""
 
 #. TRANSLATORS: Front Only
-#: locale/ipp-strings.c:1102
+#: locale/ipp-strings.c:1106
 msgid "laminating-sides.front"
 msgstr ""
 
 #. TRANSLATORS: Type of Lamination
-#: locale/ipp-strings.c:1104
+#: locale/ipp-strings.c:1108
 msgid "laminating-type"
 msgstr ""
 
 #. TRANSLATORS: Archival
-#: locale/ipp-strings.c:1106
+#: locale/ipp-strings.c:1110
 msgid "laminating-type.archival"
 msgstr ""
 
 #. TRANSLATORS: Glossy
-#: locale/ipp-strings.c:1108
+#: locale/ipp-strings.c:1112
 msgid "laminating-type.glossy"
 msgstr ""
 
 #. TRANSLATORS: High Gloss
-#: locale/ipp-strings.c:1110
+#: locale/ipp-strings.c:1114
 msgid "laminating-type.high-gloss"
 msgstr ""
 
 #. TRANSLATORS: Matte
-#: locale/ipp-strings.c:1112
+#: locale/ipp-strings.c:1116
 msgid "laminating-type.matte"
 msgstr ""
 
 #. TRANSLATORS: Semi-gloss
-#: locale/ipp-strings.c:1114
+#: locale/ipp-strings.c:1118
 msgid "laminating-type.semi-gloss"
 msgstr ""
 
 #. TRANSLATORS: Translucent
-#: locale/ipp-strings.c:1116
+#: locale/ipp-strings.c:1120
 msgid "laminating-type.translucent"
 msgstr ""
 
 #. TRANSLATORS: Logo
-#: locale/ipp-strings.c:1118
+#: locale/ipp-strings.c:1122
 msgid "logo"
 msgstr ""
 
@@ -10051,2752 +10085,2837 @@
 msgstr ""
 
 #. TRANSLATORS: Amount of Material
-#: locale/ipp-strings.c:1120
+#: locale/ipp-strings.c:1124
 msgid "material-amount"
 msgstr ""
 
 #. TRANSLATORS: Amount Units
-#: locale/ipp-strings.c:1122
+#: locale/ipp-strings.c:1126
 msgid "material-amount-units"
 msgstr ""
 
 #. TRANSLATORS: Grams
-#: locale/ipp-strings.c:1124
+#: locale/ipp-strings.c:1128
 msgid "material-amount-units.g"
 msgstr ""
 
 #. TRANSLATORS: Kilograms
-#: locale/ipp-strings.c:1126
+#: locale/ipp-strings.c:1130
 msgid "material-amount-units.kg"
 msgstr ""
 
 #. TRANSLATORS: Liters
-#: locale/ipp-strings.c:1128
+#: locale/ipp-strings.c:1132
 msgid "material-amount-units.l"
 msgstr ""
 
 #. TRANSLATORS: Meters
-#: locale/ipp-strings.c:1130
+#: locale/ipp-strings.c:1134
 msgid "material-amount-units.m"
 msgstr ""
 
 #. TRANSLATORS: Milliliters
-#: locale/ipp-strings.c:1132
+#: locale/ipp-strings.c:1136
 msgid "material-amount-units.ml"
 msgstr ""
 
 #. TRANSLATORS: Millimeters
-#: locale/ipp-strings.c:1134
+#: locale/ipp-strings.c:1138
 msgid "material-amount-units.mm"
 msgstr ""
 
 #. TRANSLATORS: Material Color
-#: locale/ipp-strings.c:1136
+#: locale/ipp-strings.c:1140
 msgid "material-color"
 msgstr ""
 
 #. TRANSLATORS: Material Diameter
-#: locale/ipp-strings.c:1138
+#: locale/ipp-strings.c:1142
 msgid "material-diameter"
 msgstr ""
 
 #. TRANSLATORS: Material Diameter Tolerance
-#: locale/ipp-strings.c:1140
+#: locale/ipp-strings.c:1144
 msgid "material-diameter-tolerance"
 msgstr ""
 
 #. TRANSLATORS: Material Fill Density
-#: locale/ipp-strings.c:1142
+#: locale/ipp-strings.c:1146
 msgid "material-fill-density"
 msgstr ""
 
 #. TRANSLATORS: Material Name
-#: locale/ipp-strings.c:1144
+#: locale/ipp-strings.c:1148
 msgid "material-name"
 msgstr ""
 
 #. TRANSLATORS: Material Nozzle Diameter
-#: locale/ipp-strings.c:1146
+#: locale/ipp-strings.c:1150
 msgid "material-nozzle-diameter"
 msgstr ""
 
 #. TRANSLATORS: Use Material For
-#: locale/ipp-strings.c:1148
+#: locale/ipp-strings.c:1152
 msgid "material-purpose"
 msgstr ""
 
 #. TRANSLATORS: Everything
-#: locale/ipp-strings.c:1150
+#: locale/ipp-strings.c:1154
 msgid "material-purpose.all"
 msgstr ""
 
 #. TRANSLATORS: Base
-#: locale/ipp-strings.c:1152
+#: locale/ipp-strings.c:1156
 msgid "material-purpose.base"
 msgstr ""
 
 #. TRANSLATORS: In-fill
-#: locale/ipp-strings.c:1154
+#: locale/ipp-strings.c:1158
 msgid "material-purpose.in-fill"
 msgstr ""
 
 #. TRANSLATORS: Shell
-#: locale/ipp-strings.c:1156
+#: locale/ipp-strings.c:1160
 msgid "material-purpose.shell"
 msgstr ""
 
 #. TRANSLATORS: Supports
-#: locale/ipp-strings.c:1158
+#: locale/ipp-strings.c:1162
 msgid "material-purpose.support"
 msgstr ""
 
 #. TRANSLATORS: Feed Rate
-#: locale/ipp-strings.c:1160
+#: locale/ipp-strings.c:1164
 msgid "material-rate"
 msgstr ""
 
 #. TRANSLATORS: Feed Rate Units
-#: locale/ipp-strings.c:1162
+#: locale/ipp-strings.c:1166
 msgid "material-rate-units"
 msgstr ""
 
 #. TRANSLATORS: Milligrams per second
-#: locale/ipp-strings.c:1164
+#: locale/ipp-strings.c:1168
 msgid "material-rate-units.mg_second"
 msgstr ""
 
 #. TRANSLATORS: Milliliters per second
-#: locale/ipp-strings.c:1166
+#: locale/ipp-strings.c:1170
 msgid "material-rate-units.ml_second"
 msgstr ""
 
 #. TRANSLATORS: Millimeters per second
-#: locale/ipp-strings.c:1168
+#: locale/ipp-strings.c:1172
 msgid "material-rate-units.mm_second"
 msgstr ""
 
 #. TRANSLATORS: Material Retraction
-#: locale/ipp-strings.c:1170
+#: locale/ipp-strings.c:1174
 msgid "material-retraction"
 msgstr ""
 
 #. TRANSLATORS: Material Shell Thickness
-#: locale/ipp-strings.c:1172
+#: locale/ipp-strings.c:1176
 msgid "material-shell-thickness"
 msgstr ""
 
 #. TRANSLATORS: Material Temperature
-#: locale/ipp-strings.c:1174
+#: locale/ipp-strings.c:1178
 msgid "material-temperature"
 msgstr ""
 
 #. TRANSLATORS: Material Type
-#: locale/ipp-strings.c:1176
+#: locale/ipp-strings.c:1180
 msgid "material-type"
 msgstr ""
 
 #. TRANSLATORS: ABS
-#: locale/ipp-strings.c:1178
+#: locale/ipp-strings.c:1182
 msgid "material-type.abs"
 msgstr ""
 
 #. TRANSLATORS: Carbon Fiber ABS
-#: locale/ipp-strings.c:1180
+#: locale/ipp-strings.c:1184
 msgid "material-type.abs-carbon-fiber"
 msgstr ""
 
 #. TRANSLATORS: Carbon Nanotube ABS
-#: locale/ipp-strings.c:1182
+#: locale/ipp-strings.c:1186
 msgid "material-type.abs-carbon-nanotube"
 msgstr ""
 
 #. TRANSLATORS: Chocolate
-#: locale/ipp-strings.c:1184
+#: locale/ipp-strings.c:1188
 msgid "material-type.chocolate"
 msgstr ""
 
 #. TRANSLATORS: Gold
-#: locale/ipp-strings.c:1186
+#: locale/ipp-strings.c:1190
 msgid "material-type.gold"
 msgstr ""
 
 #. TRANSLATORS: Nylon
-#: locale/ipp-strings.c:1188
+#: locale/ipp-strings.c:1192
 msgid "material-type.nylon"
 msgstr ""
 
 #. TRANSLATORS: Pet
-#: locale/ipp-strings.c:1190
+#: locale/ipp-strings.c:1194
 msgid "material-type.pet"
 msgstr ""
 
 #. TRANSLATORS: Photopolymer
-#: locale/ipp-strings.c:1192
+#: locale/ipp-strings.c:1196
 msgid "material-type.photopolymer"
 msgstr ""
 
 #. TRANSLATORS: PLA
-#: locale/ipp-strings.c:1194
+#: locale/ipp-strings.c:1198
 msgid "material-type.pla"
 msgstr ""
 
 #. TRANSLATORS: Conductive PLA
-#: locale/ipp-strings.c:1196
+#: locale/ipp-strings.c:1200
 msgid "material-type.pla-conductive"
 msgstr ""
 
 #. TRANSLATORS: Pla Dissolvable
-#: locale/ipp-strings.c:1198
+#: locale/ipp-strings.c:1202
 msgid "material-type.pla-dissolvable"
 msgstr ""
 
 #. TRANSLATORS: Flexible PLA
-#: locale/ipp-strings.c:1200
+#: locale/ipp-strings.c:1204
 msgid "material-type.pla-flexible"
 msgstr ""
 
 #. TRANSLATORS: Magnetic PLA
-#: locale/ipp-strings.c:1202
+#: locale/ipp-strings.c:1206
 msgid "material-type.pla-magnetic"
 msgstr ""
 
 #. TRANSLATORS: Steel PLA
-#: locale/ipp-strings.c:1204
+#: locale/ipp-strings.c:1208
 msgid "material-type.pla-steel"
 msgstr ""
 
 #. TRANSLATORS: Stone PLA
-#: locale/ipp-strings.c:1206
+#: locale/ipp-strings.c:1210
 msgid "material-type.pla-stone"
 msgstr ""
 
 #. TRANSLATORS: Wood PLA
-#: locale/ipp-strings.c:1208
+#: locale/ipp-strings.c:1212
 msgid "material-type.pla-wood"
 msgstr ""
 
 #. TRANSLATORS: Polycarbonate
-#: locale/ipp-strings.c:1210
+#: locale/ipp-strings.c:1214
 msgid "material-type.polycarbonate"
 msgstr ""
 
 #. TRANSLATORS: Dissolvable PVA
-#: locale/ipp-strings.c:1212
+#: locale/ipp-strings.c:1216
 msgid "material-type.pva-dissolvable"
 msgstr ""
 
 #. TRANSLATORS: Silver
-#: locale/ipp-strings.c:1214
+#: locale/ipp-strings.c:1218
 msgid "material-type.silver"
 msgstr ""
 
 #. TRANSLATORS: Titanium
-#: locale/ipp-strings.c:1216
+#: locale/ipp-strings.c:1220
 msgid "material-type.titanium"
 msgstr ""
 
 #. TRANSLATORS: Wax
-#: locale/ipp-strings.c:1218
+#: locale/ipp-strings.c:1222
 msgid "material-type.wax"
 msgstr ""
 
 #. TRANSLATORS: Materials
-#: locale/ipp-strings.c:1220
+#: locale/ipp-strings.c:1224
 msgid "materials-col"
 msgstr ""
 
 #. TRANSLATORS: Media
-#: locale/ipp-strings.c:1222
+#: locale/ipp-strings.c:1226
 msgid "media"
 msgstr ""
 
 #. TRANSLATORS: Back Coating of Media
-#: locale/ipp-strings.c:1224
+#: locale/ipp-strings.c:1228
 msgid "media-back-coating"
 msgstr ""
 
 #. TRANSLATORS: Glossy
-#: locale/ipp-strings.c:1226
+#: locale/ipp-strings.c:1230
 msgid "media-back-coating.glossy"
 msgstr ""
 
 #. TRANSLATORS: High Gloss
-#: locale/ipp-strings.c:1228
+#: locale/ipp-strings.c:1232
 msgid "media-back-coating.high-gloss"
 msgstr ""
 
 #. TRANSLATORS: Matte
-#: locale/ipp-strings.c:1230
+#: locale/ipp-strings.c:1234
 msgid "media-back-coating.matte"
 msgstr ""
 
 #. TRANSLATORS: None
-#: locale/ipp-strings.c:1232
+#: locale/ipp-strings.c:1236
 msgid "media-back-coating.none"
 msgstr ""
 
 #. TRANSLATORS: Satin
-#: locale/ipp-strings.c:1234
+#: locale/ipp-strings.c:1238
 msgid "media-back-coating.satin"
 msgstr ""
 
 #. TRANSLATORS: Semi-gloss
-#: locale/ipp-strings.c:1236
+#: locale/ipp-strings.c:1240
 msgid "media-back-coating.semi-gloss"
 msgstr ""
 
 #. TRANSLATORS: Media Bottom Margin
-#: locale/ipp-strings.c:1238
+#: locale/ipp-strings.c:1242
 msgid "media-bottom-margin"
 msgstr ""
 
 #. TRANSLATORS: Media
-#: locale/ipp-strings.c:1240
+#: locale/ipp-strings.c:1244
 msgid "media-col"
 msgstr ""
 
 #. TRANSLATORS: Media Color
-#: locale/ipp-strings.c:1242
+#: locale/ipp-strings.c:1246
 msgid "media-color"
 msgstr ""
 
 #. TRANSLATORS: Black
-#: locale/ipp-strings.c:1244
+#: locale/ipp-strings.c:1248
 msgid "media-color.black"
 msgstr ""
 
 #. TRANSLATORS: Blue
-#: locale/ipp-strings.c:1246
+#: locale/ipp-strings.c:1250
 msgid "media-color.blue"
 msgstr ""
 
 #. TRANSLATORS: Brown
-#: locale/ipp-strings.c:1248
+#: locale/ipp-strings.c:1252
 msgid "media-color.brown"
 msgstr ""
 
 #. TRANSLATORS: Buff
-#: locale/ipp-strings.c:1250
+#: locale/ipp-strings.c:1254
 msgid "media-color.buff"
 msgstr ""
 
 #. TRANSLATORS: Clear Black
-#: locale/ipp-strings.c:1252
+#: locale/ipp-strings.c:1256
 msgid "media-color.clear-black"
 msgstr ""
 
 #. TRANSLATORS: Clear Blue
-#: locale/ipp-strings.c:1254
+#: locale/ipp-strings.c:1258
 msgid "media-color.clear-blue"
 msgstr ""
 
 #. TRANSLATORS: Clear Brown
-#: locale/ipp-strings.c:1256
+#: locale/ipp-strings.c:1260
 msgid "media-color.clear-brown"
 msgstr ""
 
 #. TRANSLATORS: Clear Buff
-#: locale/ipp-strings.c:1258
+#: locale/ipp-strings.c:1262
 msgid "media-color.clear-buff"
 msgstr ""
 
 #. TRANSLATORS: Clear Cyan
-#: locale/ipp-strings.c:1260
+#: locale/ipp-strings.c:1264
 msgid "media-color.clear-cyan"
 msgstr ""
 
 #. TRANSLATORS: Clear Gold
-#: locale/ipp-strings.c:1262
+#: locale/ipp-strings.c:1266
 msgid "media-color.clear-gold"
 msgstr ""
 
 #. TRANSLATORS: Clear Goldenrod
-#: locale/ipp-strings.c:1264
+#: locale/ipp-strings.c:1268
 msgid "media-color.clear-goldenrod"
 msgstr ""
 
 #. TRANSLATORS: Clear Gray
-#: locale/ipp-strings.c:1266
+#: locale/ipp-strings.c:1270
 msgid "media-color.clear-gray"
 msgstr ""
 
 #. TRANSLATORS: Clear Green
-#: locale/ipp-strings.c:1268
+#: locale/ipp-strings.c:1272
 msgid "media-color.clear-green"
 msgstr ""
 
 #. TRANSLATORS: Clear Ivory
-#: locale/ipp-strings.c:1270
+#: locale/ipp-strings.c:1274
 msgid "media-color.clear-ivory"
 msgstr ""
 
 #. TRANSLATORS: Clear Magenta
-#: locale/ipp-strings.c:1272
+#: locale/ipp-strings.c:1276
 msgid "media-color.clear-magenta"
 msgstr ""
 
 #. TRANSLATORS: Clear Multi Color
-#: locale/ipp-strings.c:1274
+#: locale/ipp-strings.c:1278
 msgid "media-color.clear-multi-color"
 msgstr ""
 
 #. TRANSLATORS: Clear Mustard
-#: locale/ipp-strings.c:1276
+#: locale/ipp-strings.c:1280
 msgid "media-color.clear-mustard"
 msgstr ""
 
 #. TRANSLATORS: Clear Orange
-#: locale/ipp-strings.c:1278
+#: locale/ipp-strings.c:1282
 msgid "media-color.clear-orange"
 msgstr ""
 
 #. TRANSLATORS: Clear Pink
-#: locale/ipp-strings.c:1280
+#: locale/ipp-strings.c:1284
 msgid "media-color.clear-pink"
 msgstr ""
 
 #. TRANSLATORS: Clear Red
-#: locale/ipp-strings.c:1282
+#: locale/ipp-strings.c:1286
 msgid "media-color.clear-red"
 msgstr ""
 
 #. TRANSLATORS: Clear Silver
-#: locale/ipp-strings.c:1284
+#: locale/ipp-strings.c:1288
 msgid "media-color.clear-silver"
 msgstr ""
 
 #. TRANSLATORS: Clear Turquoise
-#: locale/ipp-strings.c:1286
+#: locale/ipp-strings.c:1290
 msgid "media-color.clear-turquoise"
 msgstr ""
 
 #. TRANSLATORS: Clear Violet
-#: locale/ipp-strings.c:1288
+#: locale/ipp-strings.c:1292
 msgid "media-color.clear-violet"
 msgstr ""
 
 #. TRANSLATORS: Clear White
-#: locale/ipp-strings.c:1290
+#: locale/ipp-strings.c:1294
 msgid "media-color.clear-white"
 msgstr ""
 
 #. TRANSLATORS: Clear Yellow
-#: locale/ipp-strings.c:1292
+#: locale/ipp-strings.c:1296
 msgid "media-color.clear-yellow"
 msgstr ""
 
 #. TRANSLATORS: Cyan
-#: locale/ipp-strings.c:1294
+#: locale/ipp-strings.c:1298
 msgid "media-color.cyan"
 msgstr ""
 
 #. TRANSLATORS: Dark Blue
-#: locale/ipp-strings.c:1296
+#: locale/ipp-strings.c:1300
 msgid "media-color.dark-blue"
 msgstr ""
 
 #. TRANSLATORS: Dark Brown
-#: locale/ipp-strings.c:1298
+#: locale/ipp-strings.c:1302
 msgid "media-color.dark-brown"
 msgstr ""
 
 #. TRANSLATORS: Dark Buff
-#: locale/ipp-strings.c:1300
+#: locale/ipp-strings.c:1304
 msgid "media-color.dark-buff"
 msgstr ""
 
 #. TRANSLATORS: Dark Cyan
-#: locale/ipp-strings.c:1302
+#: locale/ipp-strings.c:1306
 msgid "media-color.dark-cyan"
 msgstr ""
 
 #. TRANSLATORS: Dark Gold
-#: locale/ipp-strings.c:1304
+#: locale/ipp-strings.c:1308
 msgid "media-color.dark-gold"
 msgstr ""
 
 #. TRANSLATORS: Dark Goldenrod
-#: locale/ipp-strings.c:1306
+#: locale/ipp-strings.c:1310
 msgid "media-color.dark-goldenrod"
 msgstr ""
 
 #. TRANSLATORS: Dark Gray
-#: locale/ipp-strings.c:1308
+#: locale/ipp-strings.c:1312
 msgid "media-color.dark-gray"
 msgstr ""
 
 #. TRANSLATORS: Dark Green
-#: locale/ipp-strings.c:1310
+#: locale/ipp-strings.c:1314
 msgid "media-color.dark-green"
 msgstr ""
 
 #. TRANSLATORS: Dark Ivory
-#: locale/ipp-strings.c:1312
+#: locale/ipp-strings.c:1316
 msgid "media-color.dark-ivory"
 msgstr ""
 
 #. TRANSLATORS: Dark Magenta
-#: locale/ipp-strings.c:1314
+#: locale/ipp-strings.c:1318
 msgid "media-color.dark-magenta"
 msgstr ""
 
 #. TRANSLATORS: Dark Mustard
-#: locale/ipp-strings.c:1316
+#: locale/ipp-strings.c:1320
 msgid "media-color.dark-mustard"
 msgstr ""
 
 #. TRANSLATORS: Dark Orange
-#: locale/ipp-strings.c:1318
+#: locale/ipp-strings.c:1322
 msgid "media-color.dark-orange"
 msgstr ""
 
 #. TRANSLATORS: Dark Pink
-#: locale/ipp-strings.c:1320
+#: locale/ipp-strings.c:1324
 msgid "media-color.dark-pink"
 msgstr ""
 
 #. TRANSLATORS: Dark Red
-#: locale/ipp-strings.c:1322
+#: locale/ipp-strings.c:1326
 msgid "media-color.dark-red"
 msgstr ""
 
 #. TRANSLATORS: Dark Silver
-#: locale/ipp-strings.c:1324
+#: locale/ipp-strings.c:1328
 msgid "media-color.dark-silver"
 msgstr ""
 
 #. TRANSLATORS: Dark Turquoise
-#: locale/ipp-strings.c:1326
+#: locale/ipp-strings.c:1330
 msgid "media-color.dark-turquoise"
 msgstr ""
 
 #. TRANSLATORS: Dark Violet
-#: locale/ipp-strings.c:1328
+#: locale/ipp-strings.c:1332
 msgid "media-color.dark-violet"
 msgstr ""
 
 #. TRANSLATORS: Dark Yellow
-#: locale/ipp-strings.c:1330
+#: locale/ipp-strings.c:1334
 msgid "media-color.dark-yellow"
 msgstr ""
 
 #. TRANSLATORS: Gold
-#: locale/ipp-strings.c:1332
+#: locale/ipp-strings.c:1336
 msgid "media-color.gold"
 msgstr ""
 
 #. TRANSLATORS: Goldenrod
-#: locale/ipp-strings.c:1334
+#: locale/ipp-strings.c:1338
 msgid "media-color.goldenrod"
 msgstr ""
 
 #. TRANSLATORS: Gray
-#: locale/ipp-strings.c:1336
+#: locale/ipp-strings.c:1340
 msgid "media-color.gray"
 msgstr ""
 
 #. TRANSLATORS: Green
-#: locale/ipp-strings.c:1338
+#: locale/ipp-strings.c:1342
 msgid "media-color.green"
 msgstr ""
 
 #. TRANSLATORS: Ivory
-#: locale/ipp-strings.c:1340
+#: locale/ipp-strings.c:1344
 msgid "media-color.ivory"
 msgstr ""
 
 #. TRANSLATORS: Light Black
-#: locale/ipp-strings.c:1342
+#: locale/ipp-strings.c:1346
 msgid "media-color.light-black"
 msgstr ""
 
 #. TRANSLATORS: Light Blue
-#: locale/ipp-strings.c:1344
+#: locale/ipp-strings.c:1348
 msgid "media-color.light-blue"
 msgstr ""
 
 #. TRANSLATORS: Light Brown
-#: locale/ipp-strings.c:1346
+#: locale/ipp-strings.c:1350
 msgid "media-color.light-brown"
 msgstr ""
 
 #. TRANSLATORS: Light Buff
-#: locale/ipp-strings.c:1348
+#: locale/ipp-strings.c:1352
 msgid "media-color.light-buff"
 msgstr ""
 
 #. TRANSLATORS: Light Cyan
-#: locale/ipp-strings.c:1350
+#: locale/ipp-strings.c:1354
 msgid "media-color.light-cyan"
 msgstr ""
 
 #. TRANSLATORS: Light Gold
-#: locale/ipp-strings.c:1352
+#: locale/ipp-strings.c:1356
 msgid "media-color.light-gold"
 msgstr ""
 
 #. TRANSLATORS: Light Goldenrod
-#: locale/ipp-strings.c:1354
+#: locale/ipp-strings.c:1358
 msgid "media-color.light-goldenrod"
 msgstr ""
 
 #. TRANSLATORS: Light Gray
-#: locale/ipp-strings.c:1356
+#: locale/ipp-strings.c:1360
 msgid "media-color.light-gray"
 msgstr ""
 
 #. TRANSLATORS: Light Green
-#: locale/ipp-strings.c:1358
+#: locale/ipp-strings.c:1362
 msgid "media-color.light-green"
 msgstr ""
 
 #. TRANSLATORS: Light Ivory
-#: locale/ipp-strings.c:1360
+#: locale/ipp-strings.c:1364
 msgid "media-color.light-ivory"
 msgstr ""
 
 #. TRANSLATORS: Light Magenta
-#: locale/ipp-strings.c:1362
+#: locale/ipp-strings.c:1366
 msgid "media-color.light-magenta"
 msgstr ""
 
 #. TRANSLATORS: Light Mustard
-#: locale/ipp-strings.c:1364
+#: locale/ipp-strings.c:1368
 msgid "media-color.light-mustard"
 msgstr ""
 
 #. TRANSLATORS: Light Orange
-#: locale/ipp-strings.c:1366
+#: locale/ipp-strings.c:1370
 msgid "media-color.light-orange"
 msgstr ""
 
 #. TRANSLATORS: Light Pink
-#: locale/ipp-strings.c:1368
+#: locale/ipp-strings.c:1372
 msgid "media-color.light-pink"
 msgstr ""
 
 #. TRANSLATORS: Light Red
-#: locale/ipp-strings.c:1370
+#: locale/ipp-strings.c:1374
 msgid "media-color.light-red"
 msgstr ""
 
 #. TRANSLATORS: Light Silver
-#: locale/ipp-strings.c:1372
+#: locale/ipp-strings.c:1376
 msgid "media-color.light-silver"
 msgstr ""
 
 #. TRANSLATORS: Light Turquoise
-#: locale/ipp-strings.c:1374
+#: locale/ipp-strings.c:1378
 msgid "media-color.light-turquoise"
 msgstr ""
 
 #. TRANSLATORS: Light Violet
-#: locale/ipp-strings.c:1376
+#: locale/ipp-strings.c:1380
 msgid "media-color.light-violet"
 msgstr ""
 
 #. TRANSLATORS: Light Yellow
-#: locale/ipp-strings.c:1378
+#: locale/ipp-strings.c:1382
 msgid "media-color.light-yellow"
 msgstr ""
 
 #. TRANSLATORS: Magenta
-#: locale/ipp-strings.c:1380
+#: locale/ipp-strings.c:1384
 msgid "media-color.magenta"
 msgstr ""
 
 #. TRANSLATORS: Multi-color
-#: locale/ipp-strings.c:1382
+#: locale/ipp-strings.c:1386
 msgid "media-color.multi-color"
 msgstr ""
 
 #. TRANSLATORS: Mustard
-#: locale/ipp-strings.c:1384
+#: locale/ipp-strings.c:1388
 msgid "media-color.mustard"
 msgstr ""
 
 #. TRANSLATORS: No Color
-#: locale/ipp-strings.c:1386
+#: locale/ipp-strings.c:1390
 msgid "media-color.no-color"
 msgstr ""
 
 #. TRANSLATORS: Orange
-#: locale/ipp-strings.c:1388
+#: locale/ipp-strings.c:1392
 msgid "media-color.orange"
 msgstr ""
 
 #. TRANSLATORS: Pink
-#: locale/ipp-strings.c:1390
+#: locale/ipp-strings.c:1394
 msgid "media-color.pink"
 msgstr ""
 
 #. TRANSLATORS: Red
-#: locale/ipp-strings.c:1392
+#: locale/ipp-strings.c:1396
 msgid "media-color.red"
 msgstr ""
 
 #. TRANSLATORS: Silver
-#: locale/ipp-strings.c:1394
+#: locale/ipp-strings.c:1398
 msgid "media-color.silver"
 msgstr ""
 
 #. TRANSLATORS: Turquoise
-#: locale/ipp-strings.c:1396
+#: locale/ipp-strings.c:1400
 msgid "media-color.turquoise"
 msgstr ""
 
 #. TRANSLATORS: Violet
-#: locale/ipp-strings.c:1398
+#: locale/ipp-strings.c:1402
 msgid "media-color.violet"
 msgstr ""
 
 #. TRANSLATORS: White
-#: locale/ipp-strings.c:1400
+#: locale/ipp-strings.c:1404
 msgid "media-color.white"
 msgstr ""
 
 #. TRANSLATORS: Yellow
-#: locale/ipp-strings.c:1402
+#: locale/ipp-strings.c:1406
 msgid "media-color.yellow"
 msgstr ""
 
 #. TRANSLATORS: Front Coating of Media
-#: locale/ipp-strings.c:1404
+#: locale/ipp-strings.c:1408
 msgid "media-front-coating"
 msgstr ""
 
 #. TRANSLATORS: Media Grain
-#: locale/ipp-strings.c:1406
+#: locale/ipp-strings.c:1410
 msgid "media-grain"
 msgstr ""
 
 #. TRANSLATORS: Cross-Feed Direction
-#: locale/ipp-strings.c:1408
+#: locale/ipp-strings.c:1412
 msgid "media-grain.x-direction"
 msgstr ""
 
 #. TRANSLATORS: Feed Direction
-#: locale/ipp-strings.c:1410
+#: locale/ipp-strings.c:1414
 msgid "media-grain.y-direction"
 msgstr ""
 
 #. TRANSLATORS: Media Hole Count
-#: locale/ipp-strings.c:1412
+#: locale/ipp-strings.c:1416
 msgid "media-hole-count"
 msgstr ""
 
 #. TRANSLATORS: Media Info
-#: locale/ipp-strings.c:1414
+#: locale/ipp-strings.c:1418
 msgid "media-info"
 msgstr ""
 
 #. TRANSLATORS: Force Media
-#: locale/ipp-strings.c:1416
+#: locale/ipp-strings.c:1420
 msgid "media-input-tray-check"
 msgstr ""
 
 #. TRANSLATORS: Media Left Margin
-#: locale/ipp-strings.c:1418
+#: locale/ipp-strings.c:1422
 msgid "media-left-margin"
 msgstr ""
 
 #. TRANSLATORS: Pre-printed Media
-#: locale/ipp-strings.c:1420
+#: locale/ipp-strings.c:1424
 msgid "media-pre-printed"
 msgstr ""
 
 #. TRANSLATORS: Blank
-#: locale/ipp-strings.c:1422
+#: locale/ipp-strings.c:1426
 msgid "media-pre-printed.blank"
 msgstr ""
 
 #. TRANSLATORS: Letterhead
-#: locale/ipp-strings.c:1424
+#: locale/ipp-strings.c:1428
 msgid "media-pre-printed.letter-head"
 msgstr ""
 
 #. TRANSLATORS: Pre-printed
-#: locale/ipp-strings.c:1426
+#: locale/ipp-strings.c:1430
 msgid "media-pre-printed.pre-printed"
 msgstr ""
 
 #. TRANSLATORS: Recycled Media
-#: locale/ipp-strings.c:1428
+#: locale/ipp-strings.c:1432
 msgid "media-recycled"
 msgstr ""
 
 #. TRANSLATORS: None
-#: locale/ipp-strings.c:1430
+#: locale/ipp-strings.c:1434
 msgid "media-recycled.none"
 msgstr ""
 
 #. TRANSLATORS: Standard
-#: locale/ipp-strings.c:1432
+#: locale/ipp-strings.c:1436
 msgid "media-recycled.standard"
 msgstr ""
 
 #. TRANSLATORS: Media Right Margin
-#: locale/ipp-strings.c:1434
+#: locale/ipp-strings.c:1438
 msgid "media-right-margin"
 msgstr ""
 
 #. TRANSLATORS: Media Dimensions
-#: locale/ipp-strings.c:1436
+#: locale/ipp-strings.c:1440
 msgid "media-size"
 msgstr ""
 
 #. TRANSLATORS: Media Name
-#: locale/ipp-strings.c:1438
+#: locale/ipp-strings.c:1442
 msgid "media-size-name"
 msgstr ""
 
 #. TRANSLATORS: Media Source
-#: locale/ipp-strings.c:1440
+#: locale/ipp-strings.c:1444
 msgid "media-source"
 msgstr ""
 
 #. TRANSLATORS: Alternate
-#: locale/ipp-strings.c:1442
+#: locale/ipp-strings.c:1446
 msgid "media-source.alternate"
 msgstr ""
 
 #. TRANSLATORS: Alternate Roll
-#: locale/ipp-strings.c:1444
+#: locale/ipp-strings.c:1448
 msgid "media-source.alternate-roll"
 msgstr ""
 
 #. TRANSLATORS: Automatic
-#: locale/ipp-strings.c:1446
+#: locale/ipp-strings.c:1450
 msgid "media-source.auto"
 msgstr ""
 
 #. TRANSLATORS: Bottom
-#: locale/ipp-strings.c:1448
+#: locale/ipp-strings.c:1452
 msgid "media-source.bottom"
 msgstr ""
 
 #. TRANSLATORS: By-pass Tray
-#: locale/ipp-strings.c:1450
+#: locale/ipp-strings.c:1454
 msgid "media-source.by-pass-tray"
 msgstr ""
 
 #. TRANSLATORS: Center
-#: locale/ipp-strings.c:1452
+#: locale/ipp-strings.c:1456
 msgid "media-source.center"
 msgstr ""
 
 #. TRANSLATORS: Disc
-#: locale/ipp-strings.c:1454
+#: locale/ipp-strings.c:1458
 msgid "media-source.disc"
 msgstr ""
 
 #. TRANSLATORS: Envelope
-#: locale/ipp-strings.c:1456
+#: locale/ipp-strings.c:1460
 msgid "media-source.envelope"
 msgstr ""
 
 #. TRANSLATORS: Hagaki
-#: locale/ipp-strings.c:1458
+#: locale/ipp-strings.c:1462
 msgid "media-source.hagaki"
 msgstr ""
 
 #. TRANSLATORS: Large Capacity
-#: locale/ipp-strings.c:1460
+#: locale/ipp-strings.c:1464
 msgid "media-source.large-capacity"
 msgstr ""
 
 #. TRANSLATORS: Left
-#: locale/ipp-strings.c:1462
+#: locale/ipp-strings.c:1466
 msgid "media-source.left"
 msgstr ""
 
 #. TRANSLATORS: Main
-#: locale/ipp-strings.c:1464
+#: locale/ipp-strings.c:1468
 msgid "media-source.main"
 msgstr ""
 
 #. TRANSLATORS: Main Roll
-#: locale/ipp-strings.c:1466
+#: locale/ipp-strings.c:1470
 msgid "media-source.main-roll"
 msgstr ""
 
 #. TRANSLATORS: Manual
-#: locale/ipp-strings.c:1468
+#: locale/ipp-strings.c:1472
 msgid "media-source.manual"
 msgstr ""
 
 #. TRANSLATORS: Middle
-#: locale/ipp-strings.c:1470
+#: locale/ipp-strings.c:1474
 msgid "media-source.middle"
 msgstr ""
 
 #. TRANSLATORS: Photo
-#: locale/ipp-strings.c:1472
+#: locale/ipp-strings.c:1476
 msgid "media-source.photo"
 msgstr ""
 
 #. TRANSLATORS: Rear
-#: locale/ipp-strings.c:1474
+#: locale/ipp-strings.c:1478
 msgid "media-source.rear"
 msgstr ""
 
 #. TRANSLATORS: Right
-#: locale/ipp-strings.c:1476
+#: locale/ipp-strings.c:1480
 msgid "media-source.right"
 msgstr ""
 
 #. TRANSLATORS: Roll 1
-#: locale/ipp-strings.c:1478
+#: locale/ipp-strings.c:1482
 msgid "media-source.roll-1"
 msgstr ""
 
 #. TRANSLATORS: Roll 10
-#: locale/ipp-strings.c:1480
+#: locale/ipp-strings.c:1484
 msgid "media-source.roll-10"
 msgstr ""
 
 #. TRANSLATORS: Roll 2
-#: locale/ipp-strings.c:1482
+#: locale/ipp-strings.c:1486
 msgid "media-source.roll-2"
 msgstr ""
 
 #. TRANSLATORS: Roll 3
-#: locale/ipp-strings.c:1484
+#: locale/ipp-strings.c:1488
 msgid "media-source.roll-3"
 msgstr ""
 
 #. TRANSLATORS: Roll 4
-#: locale/ipp-strings.c:1486
+#: locale/ipp-strings.c:1490
 msgid "media-source.roll-4"
 msgstr ""
 
 #. TRANSLATORS: Roll 5
-#: locale/ipp-strings.c:1488
+#: locale/ipp-strings.c:1492
 msgid "media-source.roll-5"
 msgstr ""
 
 #. TRANSLATORS: Roll 6
-#: locale/ipp-strings.c:1490
+#: locale/ipp-strings.c:1494
 msgid "media-source.roll-6"
 msgstr ""
 
 #. TRANSLATORS: Roll 7
-#: locale/ipp-strings.c:1492
+#: locale/ipp-strings.c:1496
 msgid "media-source.roll-7"
 msgstr ""
 
 #. TRANSLATORS: Roll 8
-#: locale/ipp-strings.c:1494
+#: locale/ipp-strings.c:1498
 msgid "media-source.roll-8"
 msgstr ""
 
 #. TRANSLATORS: Roll 9
-#: locale/ipp-strings.c:1496
+#: locale/ipp-strings.c:1500
 msgid "media-source.roll-9"
 msgstr ""
 
 #. TRANSLATORS: Side
-#: locale/ipp-strings.c:1498
+#: locale/ipp-strings.c:1502
 msgid "media-source.side"
 msgstr ""
 
 #. TRANSLATORS: Top
-#: locale/ipp-strings.c:1500
+#: locale/ipp-strings.c:1504
 msgid "media-source.top"
 msgstr ""
 
 #. TRANSLATORS: Tray 1
-#: locale/ipp-strings.c:1502
+#: locale/ipp-strings.c:1506
 msgid "media-source.tray-1"
 msgstr ""
 
 #. TRANSLATORS: Tray 10
-#: locale/ipp-strings.c:1504
+#: locale/ipp-strings.c:1508
 msgid "media-source.tray-10"
 msgstr ""
 
 #. TRANSLATORS: Tray 11
-#: locale/ipp-strings.c:1506
+#: locale/ipp-strings.c:1510
 msgid "media-source.tray-11"
 msgstr ""
 
 #. TRANSLATORS: Tray 12
-#: locale/ipp-strings.c:1508
+#: locale/ipp-strings.c:1512
 msgid "media-source.tray-12"
 msgstr ""
 
 #. TRANSLATORS: Tray 13
-#: locale/ipp-strings.c:1510
+#: locale/ipp-strings.c:1514
 msgid "media-source.tray-13"
 msgstr ""
 
 #. TRANSLATORS: Tray 14
-#: locale/ipp-strings.c:1512
+#: locale/ipp-strings.c:1516
 msgid "media-source.tray-14"
 msgstr ""
 
 #. TRANSLATORS: Tray 15
-#: locale/ipp-strings.c:1514
+#: locale/ipp-strings.c:1518
 msgid "media-source.tray-15"
 msgstr ""
 
 #. TRANSLATORS: Tray 16
-#: locale/ipp-strings.c:1516
+#: locale/ipp-strings.c:1520
 msgid "media-source.tray-16"
 msgstr ""
 
 #. TRANSLATORS: Tray 17
-#: locale/ipp-strings.c:1518
+#: locale/ipp-strings.c:1522
 msgid "media-source.tray-17"
 msgstr ""
 
 #. TRANSLATORS: Tray 18
-#: locale/ipp-strings.c:1520
+#: locale/ipp-strings.c:1524
 msgid "media-source.tray-18"
 msgstr ""
 
 #. TRANSLATORS: Tray 19
-#: locale/ipp-strings.c:1522
+#: locale/ipp-strings.c:1526
 msgid "media-source.tray-19"
 msgstr ""
 
 #. TRANSLATORS: Tray 2
-#: locale/ipp-strings.c:1524
+#: locale/ipp-strings.c:1528
 msgid "media-source.tray-2"
 msgstr ""
 
 #. TRANSLATORS: Tray 20
-#: locale/ipp-strings.c:1526
+#: locale/ipp-strings.c:1530
 msgid "media-source.tray-20"
 msgstr ""
 
 #. TRANSLATORS: Tray 3
-#: locale/ipp-strings.c:1528
+#: locale/ipp-strings.c:1532
 msgid "media-source.tray-3"
 msgstr ""
 
 #. TRANSLATORS: Tray 4
-#: locale/ipp-strings.c:1530
+#: locale/ipp-strings.c:1534
 msgid "media-source.tray-4"
 msgstr ""
 
 #. TRANSLATORS: Tray 5
-#: locale/ipp-strings.c:1532
+#: locale/ipp-strings.c:1536
 msgid "media-source.tray-5"
 msgstr ""
 
 #. TRANSLATORS: Tray 6
-#: locale/ipp-strings.c:1534
+#: locale/ipp-strings.c:1538
 msgid "media-source.tray-6"
 msgstr ""
 
 #. TRANSLATORS: Tray 7
-#: locale/ipp-strings.c:1536
+#: locale/ipp-strings.c:1540
 msgid "media-source.tray-7"
 msgstr ""
 
 #. TRANSLATORS: Tray 8
-#: locale/ipp-strings.c:1538
+#: locale/ipp-strings.c:1542
 msgid "media-source.tray-8"
 msgstr ""
 
 #. TRANSLATORS: Tray 9
-#: locale/ipp-strings.c:1540
+#: locale/ipp-strings.c:1544
 msgid "media-source.tray-9"
 msgstr ""
 
 #. TRANSLATORS: Media Thickness
-#: locale/ipp-strings.c:1542
+#: locale/ipp-strings.c:1546
 msgid "media-thickness"
 msgstr ""
 
 #. TRANSLATORS: Media Tooth (Texture)
-#: locale/ipp-strings.c:1544
+#: locale/ipp-strings.c:1548
 msgid "media-tooth"
 msgstr ""
 
 #. TRANSLATORS: Antique
-#: locale/ipp-strings.c:1546
+#: locale/ipp-strings.c:1550
 msgid "media-tooth.antique"
 msgstr ""
 
 #. TRANSLATORS: Extra Smooth
-#: locale/ipp-strings.c:1548
+#: locale/ipp-strings.c:1552
 msgid "media-tooth.calendared"
 msgstr ""
 
 #. TRANSLATORS: Coarse
-#: locale/ipp-strings.c:1550
+#: locale/ipp-strings.c:1554
 msgid "media-tooth.coarse"
 msgstr ""
 
 #. TRANSLATORS: Fine
-#: locale/ipp-strings.c:1552
+#: locale/ipp-strings.c:1556
 msgid "media-tooth.fine"
 msgstr ""
 
 #. TRANSLATORS: Linen
-#: locale/ipp-strings.c:1554
+#: locale/ipp-strings.c:1558
 msgid "media-tooth.linen"
 msgstr ""
 
 #. TRANSLATORS: Medium
-#: locale/ipp-strings.c:1556
+#: locale/ipp-strings.c:1560
 msgid "media-tooth.medium"
 msgstr ""
 
 #. TRANSLATORS: Smooth
-#: locale/ipp-strings.c:1558
+#: locale/ipp-strings.c:1562
 msgid "media-tooth.smooth"
 msgstr ""
 
 #. TRANSLATORS: Stipple
-#: locale/ipp-strings.c:1560
+#: locale/ipp-strings.c:1564
 msgid "media-tooth.stipple"
 msgstr ""
 
 #. TRANSLATORS: Rough
-#: locale/ipp-strings.c:1562
+#: locale/ipp-strings.c:1566
 msgid "media-tooth.uncalendared"
 msgstr ""
 
 #. TRANSLATORS: Vellum
-#: locale/ipp-strings.c:1564
+#: locale/ipp-strings.c:1568
 msgid "media-tooth.vellum"
 msgstr ""
 
 #. TRANSLATORS: Media Top Margin
-#: locale/ipp-strings.c:1566
+#: locale/ipp-strings.c:1570
 msgid "media-top-margin"
 msgstr ""
 
 #. TRANSLATORS: Media Type
-#: locale/ipp-strings.c:1568
+#: locale/ipp-strings.c:1572
 msgid "media-type"
 msgstr ""
 
 #. TRANSLATORS: Aluminum
-#: locale/ipp-strings.c:1570
+#: locale/ipp-strings.c:1574
 msgid "media-type.aluminum"
 msgstr ""
 
 #. TRANSLATORS: Automatic
-#: locale/ipp-strings.c:1572
+#: locale/ipp-strings.c:1576
 msgid "media-type.auto"
 msgstr ""
 
 #. TRANSLATORS: Back Print Film
-#: locale/ipp-strings.c:1574
+#: locale/ipp-strings.c:1578
 msgid "media-type.back-print-film"
 msgstr ""
 
 #. TRANSLATORS: Cardboard
-#: locale/ipp-strings.c:1576
+#: locale/ipp-strings.c:1580
 msgid "media-type.cardboard"
 msgstr ""
 
 #. TRANSLATORS: Cardstock
-#: locale/ipp-strings.c:1578
+#: locale/ipp-strings.c:1582
 msgid "media-type.cardstock"
 msgstr ""
 
 #. TRANSLATORS: CD
-#: locale/ipp-strings.c:1580
+#: locale/ipp-strings.c:1584
 msgid "media-type.cd"
 msgstr ""
 
+#. TRANSLATORS: Photo Advanced Paper
+#: locale/ipp-strings.c:1586
+msgid "media-type.com.hp.advanced-photo"
+msgstr ""
+
+#. TRANSLATORS: Brochure Glossy Paper
+#: locale/ipp-strings.c:1588
+msgid "media-type.com.hp.brochure-glossy"
+msgstr ""
+
+#. TRANSLATORS: Brochure Matte Paper
+#: locale/ipp-strings.c:1590
+msgid "media-type.com.hp.brochure-matte"
+msgstr ""
+
+#. TRANSLATORS: Matte Coverstock
+#: locale/ipp-strings.c:1592
+msgid "media-type.com.hp.cover-matte"
+msgstr ""
+
+#. TRANSLATORS: EcoSMART Lite Paper
+#: locale/ipp-strings.c:1594
+msgid "media-type.com.hp.ecosmart-lite"
+msgstr ""
+
+#. TRANSLATORS: Everyday Glossy Paper
+#: locale/ipp-strings.c:1596
+msgid "media-type.com.hp.everyday-glossy"
+msgstr ""
+
+#. TRANSLATORS: Everyday Matte Paper
+#: locale/ipp-strings.c:1598
+msgid "media-type.com.hp.everyday-matte"
+msgstr ""
+
+#. TRANSLATORS: Extra Heavyweight Paper
+#: locale/ipp-strings.c:1600
+msgid "media-type.com.hp.extra-heavy"
+msgstr ""
+
+#. TRANSLATORS: Intermediate Paper
+#: locale/ipp-strings.c:1602
+msgid "media-type.com.hp.intermediate"
+msgstr ""
+
+#. TRANSLATORS: Mid-Weight Paper
+#: locale/ipp-strings.c:1604
+msgid "media-type.com.hp.mid-weight"
+msgstr ""
+
+#. TRANSLATORS: Inkjet Premium Paper
+#: locale/ipp-strings.c:1606
+msgid "media-type.com.hp.premium-inkjet"
+msgstr ""
+
+#. TRANSLATORS: Photo Premium Paper
+#: locale/ipp-strings.c:1608
+msgid "media-type.com.hp.premium-photo"
+msgstr ""
+
+#. TRANSLATORS: Premium Matte Presentation Paper
+#: locale/ipp-strings.c:1610
+msgid "media-type.com.hp.premium-presentation-matte"
+msgstr ""
+
 #. TRANSLATORS: Continuous
-#: locale/ipp-strings.c:1582
+#: locale/ipp-strings.c:1612
 msgid "media-type.continuous"
 msgstr ""
 
 #. TRANSLATORS: Continuous Long
-#: locale/ipp-strings.c:1584
+#: locale/ipp-strings.c:1614
 msgid "media-type.continuous-long"
 msgstr ""
 
 #. TRANSLATORS: Continuous Short
-#: locale/ipp-strings.c:1586
+#: locale/ipp-strings.c:1616
 msgid "media-type.continuous-short"
 msgstr ""
 
 #. TRANSLATORS: Corrugated Board
-#: locale/ipp-strings.c:1588
+#: locale/ipp-strings.c:1618
 msgid "media-type.corrugated-board"
 msgstr ""
 
 #. TRANSLATORS: Optical Disc
-#: locale/ipp-strings.c:1590
+#: locale/ipp-strings.c:1620
 msgid "media-type.disc"
 msgstr ""
 
 #. TRANSLATORS: Glossy Optical Disc
-#: locale/ipp-strings.c:1592
+#: locale/ipp-strings.c:1622
 msgid "media-type.disc-glossy"
 msgstr ""
 
 #. TRANSLATORS: High Gloss Optical Disc
-#: locale/ipp-strings.c:1594
+#: locale/ipp-strings.c:1624
 msgid "media-type.disc-high-gloss"
 msgstr ""
 
 #. TRANSLATORS: Matte Optical Disc
-#: locale/ipp-strings.c:1596
+#: locale/ipp-strings.c:1626
 msgid "media-type.disc-matte"
 msgstr ""
 
 #. TRANSLATORS: Satin Optical Disc
-#: locale/ipp-strings.c:1598
+#: locale/ipp-strings.c:1628
 msgid "media-type.disc-satin"
 msgstr ""
 
 #. TRANSLATORS: Semi-Gloss Optical Disc
-#: locale/ipp-strings.c:1600
+#: locale/ipp-strings.c:1630
 msgid "media-type.disc-semi-gloss"
 msgstr ""
 
 #. TRANSLATORS: Double Wall
-#: locale/ipp-strings.c:1602
+#: locale/ipp-strings.c:1632
 msgid "media-type.double-wall"
 msgstr ""
 
 #. TRANSLATORS: Dry Film
-#: locale/ipp-strings.c:1604
+#: locale/ipp-strings.c:1634
 msgid "media-type.dry-film"
 msgstr ""
 
 #. TRANSLATORS: DVD
-#: locale/ipp-strings.c:1606
+#: locale/ipp-strings.c:1636
 msgid "media-type.dvd"
 msgstr ""
 
 #. TRANSLATORS: Embossing Foil
-#: locale/ipp-strings.c:1608
+#: locale/ipp-strings.c:1638
 msgid "media-type.embossing-foil"
 msgstr ""
 
 #. TRANSLATORS: End Board
-#: locale/ipp-strings.c:1610
+#: locale/ipp-strings.c:1640
 msgid "media-type.end-board"
 msgstr ""
 
 #. TRANSLATORS: Envelope
-#: locale/ipp-strings.c:1612
+#: locale/ipp-strings.c:1642
 msgid "media-type.envelope"
 msgstr ""
 
 #. TRANSLATORS: Archival Envelope
-#: locale/ipp-strings.c:1614
+#: locale/ipp-strings.c:1644
 msgid "media-type.envelope-archival"
 msgstr ""
 
 #. TRANSLATORS: Bond Envelope
-#: locale/ipp-strings.c:1616
+#: locale/ipp-strings.c:1646
 msgid "media-type.envelope-bond"
 msgstr ""
 
 #. TRANSLATORS: Coated Envelope
-#: locale/ipp-strings.c:1618
+#: locale/ipp-strings.c:1648
 msgid "media-type.envelope-coated"
 msgstr ""
 
 #. TRANSLATORS: Cotton Envelope
-#: locale/ipp-strings.c:1620
+#: locale/ipp-strings.c:1650
 msgid "media-type.envelope-cotton"
 msgstr ""
 
 #. TRANSLATORS: Fine Envelope
-#: locale/ipp-strings.c:1622
+#: locale/ipp-strings.c:1652
 msgid "media-type.envelope-fine"
 msgstr ""
 
 #. TRANSLATORS: Heavyweight Envelope
-#: locale/ipp-strings.c:1624
+#: locale/ipp-strings.c:1654
 msgid "media-type.envelope-heavyweight"
 msgstr ""
 
 #. TRANSLATORS: Inkjet Envelope
-#: locale/ipp-strings.c:1626
+#: locale/ipp-strings.c:1656
 msgid "media-type.envelope-inkjet"
 msgstr ""
 
 #. TRANSLATORS: Lightweight Envelope
-#: locale/ipp-strings.c:1628
+#: locale/ipp-strings.c:1658
 msgid "media-type.envelope-lightweight"
 msgstr ""
 
 #. TRANSLATORS: Plain Envelope
-#: locale/ipp-strings.c:1630
+#: locale/ipp-strings.c:1660
 msgid "media-type.envelope-plain"
 msgstr ""
 
 #. TRANSLATORS: Preprinted Envelope
-#: locale/ipp-strings.c:1632
+#: locale/ipp-strings.c:1662
 msgid "media-type.envelope-preprinted"
 msgstr ""
 
 #. TRANSLATORS: Windowed Envelope
-#: locale/ipp-strings.c:1634
+#: locale/ipp-strings.c:1664
 msgid "media-type.envelope-window"
 msgstr ""
 
 #. TRANSLATORS: Fabric
-#: locale/ipp-strings.c:1636
+#: locale/ipp-strings.c:1666
 msgid "media-type.fabric"
 msgstr ""
 
 #. TRANSLATORS: Archival Fabric
-#: locale/ipp-strings.c:1638
+#: locale/ipp-strings.c:1668
 msgid "media-type.fabric-archival"
 msgstr ""
 
 #. TRANSLATORS: Glossy Fabric
-#: locale/ipp-strings.c:1640
+#: locale/ipp-strings.c:1670
 msgid "media-type.fabric-glossy"
 msgstr ""
 
 #. TRANSLATORS: High Gloss Fabric
-#: locale/ipp-strings.c:1642
+#: locale/ipp-strings.c:1672
 msgid "media-type.fabric-high-gloss"
 msgstr ""
 
 #. TRANSLATORS: Matte Fabric
-#: locale/ipp-strings.c:1644
+#: locale/ipp-strings.c:1674
 msgid "media-type.fabric-matte"
 msgstr ""
 
 #. TRANSLATORS: Semi-Gloss Fabric
-#: locale/ipp-strings.c:1646
+#: locale/ipp-strings.c:1676
 msgid "media-type.fabric-semi-gloss"
 msgstr ""
 
 #. TRANSLATORS: Waterproof Fabric
-#: locale/ipp-strings.c:1648
+#: locale/ipp-strings.c:1678
 msgid "media-type.fabric-waterproof"
 msgstr ""
 
 #. TRANSLATORS: Film
-#: locale/ipp-strings.c:1650
+#: locale/ipp-strings.c:1680
 msgid "media-type.film"
 msgstr ""
 
 #. TRANSLATORS: Flexo Base
-#: locale/ipp-strings.c:1652
+#: locale/ipp-strings.c:1682
 msgid "media-type.flexo-base"
 msgstr ""
 
 #. TRANSLATORS: Flexo Photo Polymer
-#: locale/ipp-strings.c:1654
+#: locale/ipp-strings.c:1684
 msgid "media-type.flexo-photo-polymer"
 msgstr ""
 
 #. TRANSLATORS: Flute
-#: locale/ipp-strings.c:1656
+#: locale/ipp-strings.c:1686
 msgid "media-type.flute"
 msgstr ""
 
 #. TRANSLATORS: Foil
-#: locale/ipp-strings.c:1658
+#: locale/ipp-strings.c:1688
 msgid "media-type.foil"
 msgstr ""
 
 #. TRANSLATORS: Full Cut Tabs
-#: locale/ipp-strings.c:1660
+#: locale/ipp-strings.c:1690
 msgid "media-type.full-cut-tabs"
 msgstr ""
 
 #. TRANSLATORS: Glass
-#: locale/ipp-strings.c:1662
+#: locale/ipp-strings.c:1692
 msgid "media-type.glass"
 msgstr ""
 
 #. TRANSLATORS: Glass Colored
-#: locale/ipp-strings.c:1664
+#: locale/ipp-strings.c:1694
 msgid "media-type.glass-colored"
 msgstr ""
 
 #. TRANSLATORS: Glass Opaque
-#: locale/ipp-strings.c:1666
+#: locale/ipp-strings.c:1696
 msgid "media-type.glass-opaque"
 msgstr ""
 
 #. TRANSLATORS: Glass Surfaced
-#: locale/ipp-strings.c:1668
+#: locale/ipp-strings.c:1698
 msgid "media-type.glass-surfaced"
 msgstr ""
 
 #. TRANSLATORS: Glass Textured
-#: locale/ipp-strings.c:1670
+#: locale/ipp-strings.c:1700
 msgid "media-type.glass-textured"
 msgstr ""
 
 #. TRANSLATORS: Gravure Cylinder
-#: locale/ipp-strings.c:1672
+#: locale/ipp-strings.c:1702
 msgid "media-type.gravure-cylinder"
 msgstr ""
 
 #. TRANSLATORS: Image Setter Paper
-#: locale/ipp-strings.c:1674
+#: locale/ipp-strings.c:1704
 msgid "media-type.image-setter-paper"
 msgstr ""
 
 #. TRANSLATORS: Imaging Cylinder
-#: locale/ipp-strings.c:1676
+#: locale/ipp-strings.c:1706
 msgid "media-type.imaging-cylinder"
 msgstr ""
 
+#. TRANSLATORS: Photo Paper Plus Glossy II
+#: locale/ipp-strings.c:1708
+msgid "media-type.jp.co.canon-photo-paper-plus-glossy-ii"
+msgstr ""
+
+#. TRANSLATORS: Photo Paper Pro Platinum
+#: locale/ipp-strings.c:1710
+msgid "media-type.jp.co.canon-photo-paper-pro-platinum"
+msgstr ""
+
+#. TRANSLATORS: Photo Paper Plus Glossy II
+#: locale/ipp-strings.c:1712
+msgid "media-type.jp.co.canon_photo-paper-plus-glossy-ii"
+msgstr ""
+
+#. TRANSLATORS: Photo Paper Pro Platinum
+#: locale/ipp-strings.c:1714
+msgid "media-type.jp.co.canon_photo-paper-pro-platinum"
+msgstr ""
+
 #. TRANSLATORS: Labels
-#: locale/ipp-strings.c:1678
+#: locale/ipp-strings.c:1716
 msgid "media-type.labels"
 msgstr ""
 
 #. TRANSLATORS: Colored Labels
-#: locale/ipp-strings.c:1680
+#: locale/ipp-strings.c:1718
 msgid "media-type.labels-colored"
 msgstr ""
 
 #. TRANSLATORS: Glossy Labels
-#: locale/ipp-strings.c:1682
+#: locale/ipp-strings.c:1720
 msgid "media-type.labels-glossy"
 msgstr ""
 
 #. TRANSLATORS: High Gloss Labels
-#: locale/ipp-strings.c:1684
+#: locale/ipp-strings.c:1722
 msgid "media-type.labels-high-gloss"
 msgstr ""
 
 #. TRANSLATORS: Inkjet Labels
-#: locale/ipp-strings.c:1686
+#: locale/ipp-strings.c:1724
 msgid "media-type.labels-inkjet"
 msgstr ""
 
 #. TRANSLATORS: Matte Labels
-#: locale/ipp-strings.c:1688
+#: locale/ipp-strings.c:1726
 msgid "media-type.labels-matte"
 msgstr ""
 
 #. TRANSLATORS: Permanent Labels
-#: locale/ipp-strings.c:1690
+#: locale/ipp-strings.c:1728
 msgid "media-type.labels-permanent"
 msgstr ""
 
 #. TRANSLATORS: Satin Labels
-#: locale/ipp-strings.c:1692
+#: locale/ipp-strings.c:1730
 msgid "media-type.labels-satin"
 msgstr ""
 
 #. TRANSLATORS: Security Labels
-#: locale/ipp-strings.c:1694
+#: locale/ipp-strings.c:1732
 msgid "media-type.labels-security"
 msgstr ""
 
 #. TRANSLATORS: Semi-Gloss Labels
-#: locale/ipp-strings.c:1696
+#: locale/ipp-strings.c:1734
 msgid "media-type.labels-semi-gloss"
 msgstr ""
 
 #. TRANSLATORS: Laminating Foil
-#: locale/ipp-strings.c:1698
+#: locale/ipp-strings.c:1736
 msgid "media-type.laminating-foil"
 msgstr ""
 
 #. TRANSLATORS: Letterhead
-#: locale/ipp-strings.c:1700
+#: locale/ipp-strings.c:1738
 msgid "media-type.letterhead"
 msgstr ""
 
 #. TRANSLATORS: Metal
-#: locale/ipp-strings.c:1702
+#: locale/ipp-strings.c:1740
 msgid "media-type.metal"
 msgstr ""
 
 #. TRANSLATORS: Metal Glossy
-#: locale/ipp-strings.c:1704
+#: locale/ipp-strings.c:1742
 msgid "media-type.metal-glossy"
 msgstr ""
 
 #. TRANSLATORS: Metal High Gloss
-#: locale/ipp-strings.c:1706
+#: locale/ipp-strings.c:1744
 msgid "media-type.metal-high-gloss"
 msgstr ""
 
 #. TRANSLATORS: Metal Matte
-#: locale/ipp-strings.c:1708
+#: locale/ipp-strings.c:1746
 msgid "media-type.metal-matte"
 msgstr ""
 
 #. TRANSLATORS: Metal Satin
-#: locale/ipp-strings.c:1710
+#: locale/ipp-strings.c:1748
 msgid "media-type.metal-satin"
 msgstr ""
 
 #. TRANSLATORS: Metal Semi Gloss
-#: locale/ipp-strings.c:1712
+#: locale/ipp-strings.c:1750
 msgid "media-type.metal-semi-gloss"
 msgstr ""
 
 #. TRANSLATORS: Mounting Tape
-#: locale/ipp-strings.c:1714
+#: locale/ipp-strings.c:1752
 msgid "media-type.mounting-tape"
 msgstr ""
 
 #. TRANSLATORS: Multi Layer
-#: locale/ipp-strings.c:1716
+#: locale/ipp-strings.c:1754
 msgid "media-type.multi-layer"
 msgstr ""
 
 #. TRANSLATORS: Multi Part Form
-#: locale/ipp-strings.c:1718
+#: locale/ipp-strings.c:1756
 msgid "media-type.multi-part-form"
 msgstr ""
 
 #. TRANSLATORS: Other
-#: locale/ipp-strings.c:1720
+#: locale/ipp-strings.c:1758
 msgid "media-type.other"
 msgstr ""
 
 #. TRANSLATORS: Paper
-#: locale/ipp-strings.c:1722
+#: locale/ipp-strings.c:1760
 msgid "media-type.paper"
 msgstr ""
 
 #. TRANSLATORS: Photo Paper
-#: locale/ipp-strings.c:1724
+#: locale/ipp-strings.c:1762
 msgid "media-type.photographic"
 msgstr ""
 
 #. TRANSLATORS: Photographic Archival
-#: locale/ipp-strings.c:1726
+#: locale/ipp-strings.c:1764
 msgid "media-type.photographic-archival"
 msgstr ""
 
 #. TRANSLATORS: Photo Film
-#: locale/ipp-strings.c:1728
+#: locale/ipp-strings.c:1766
 msgid "media-type.photographic-film"
 msgstr ""
 
 #. TRANSLATORS: Glossy Photo Paper
-#: locale/ipp-strings.c:1730
+#: locale/ipp-strings.c:1768
 msgid "media-type.photographic-glossy"
 msgstr ""
 
 #. TRANSLATORS: High Gloss Photo Paper
-#: locale/ipp-strings.c:1732
+#: locale/ipp-strings.c:1770
 msgid "media-type.photographic-high-gloss"
 msgstr ""
 
 #. TRANSLATORS: Matte Photo Paper
-#: locale/ipp-strings.c:1734
+#: locale/ipp-strings.c:1772
 msgid "media-type.photographic-matte"
 msgstr ""
 
 #. TRANSLATORS: Satin Photo Paper
-#: locale/ipp-strings.c:1736
+#: locale/ipp-strings.c:1774
 msgid "media-type.photographic-satin"
 msgstr ""
 
 #. TRANSLATORS: Semi-Gloss Photo Paper
-#: locale/ipp-strings.c:1738
+#: locale/ipp-strings.c:1776
 msgid "media-type.photographic-semi-gloss"
 msgstr ""
 
 #. TRANSLATORS: Plastic
-#: locale/ipp-strings.c:1740
+#: locale/ipp-strings.c:1778
 msgid "media-type.plastic"
 msgstr ""
 
 #. TRANSLATORS: Plastic Archival
-#: locale/ipp-strings.c:1742
+#: locale/ipp-strings.c:1780
 msgid "media-type.plastic-archival"
 msgstr ""
 
 #. TRANSLATORS: Plastic Colored
-#: locale/ipp-strings.c:1744
+#: locale/ipp-strings.c:1782
 msgid "media-type.plastic-colored"
 msgstr ""
 
 #. TRANSLATORS: Plastic Glossy
-#: locale/ipp-strings.c:1746
+#: locale/ipp-strings.c:1784
 msgid "media-type.plastic-glossy"
 msgstr ""
 
 #. TRANSLATORS: Plastic High Gloss
-#: locale/ipp-strings.c:1748
+#: locale/ipp-strings.c:1786
 msgid "media-type.plastic-high-gloss"
 msgstr ""
 
 #. TRANSLATORS: Plastic Matte
-#: locale/ipp-strings.c:1750
+#: locale/ipp-strings.c:1788
 msgid "media-type.plastic-matte"
 msgstr ""
 
 #. TRANSLATORS: Plastic Satin
-#: locale/ipp-strings.c:1752
+#: locale/ipp-strings.c:1790
 msgid "media-type.plastic-satin"
 msgstr ""
 
 #. TRANSLATORS: Plastic Semi Gloss
-#: locale/ipp-strings.c:1754
+#: locale/ipp-strings.c:1792
 msgid "media-type.plastic-semi-gloss"
 msgstr ""
 
 #. TRANSLATORS: Plate
-#: locale/ipp-strings.c:1756
+#: locale/ipp-strings.c:1794
 msgid "media-type.plate"
 msgstr ""
 
 #. TRANSLATORS: Polyester
-#: locale/ipp-strings.c:1758
+#: locale/ipp-strings.c:1796
 msgid "media-type.polyester"
 msgstr ""
 
 #. TRANSLATORS: Pre Cut Tabs
-#: locale/ipp-strings.c:1760
+#: locale/ipp-strings.c:1798
 msgid "media-type.pre-cut-tabs"
 msgstr ""
 
 #. TRANSLATORS: Roll
-#: locale/ipp-strings.c:1762
+#: locale/ipp-strings.c:1800
 msgid "media-type.roll"
 msgstr ""
 
 #. TRANSLATORS: Screen
-#: locale/ipp-strings.c:1764
+#: locale/ipp-strings.c:1802
 msgid "media-type.screen"
 msgstr ""
 
 #. TRANSLATORS: Screen Paged
-#: locale/ipp-strings.c:1766
+#: locale/ipp-strings.c:1804
 msgid "media-type.screen-paged"
 msgstr ""
 
 #. TRANSLATORS: Self Adhesive
-#: locale/ipp-strings.c:1768
+#: locale/ipp-strings.c:1806
 msgid "media-type.self-adhesive"
 msgstr ""
 
 #. TRANSLATORS: Self Adhesive Film
-#: locale/ipp-strings.c:1770
+#: locale/ipp-strings.c:1808
 msgid "media-type.self-adhesive-film"
 msgstr ""
 
 #. TRANSLATORS: Shrink Foil
-#: locale/ipp-strings.c:1772
+#: locale/ipp-strings.c:1810
 msgid "media-type.shrink-foil"
 msgstr ""
 
 #. TRANSLATORS: Single Face
-#: locale/ipp-strings.c:1774
+#: locale/ipp-strings.c:1812
 msgid "media-type.single-face"
 msgstr ""
 
 #. TRANSLATORS: Single Wall
-#: locale/ipp-strings.c:1776
+#: locale/ipp-strings.c:1814
 msgid "media-type.single-wall"
 msgstr ""
 
 #. TRANSLATORS: Sleeve
-#: locale/ipp-strings.c:1778
+#: locale/ipp-strings.c:1816
 msgid "media-type.sleeve"
 msgstr ""
 
 #. TRANSLATORS: Stationery
-#: locale/ipp-strings.c:1780
+#: locale/ipp-strings.c:1818
 msgid "media-type.stationery"
 msgstr ""
 
 #. TRANSLATORS: Stationery Archival
-#: locale/ipp-strings.c:1782
+#: locale/ipp-strings.c:1820
 msgid "media-type.stationery-archival"
 msgstr ""
 
 #. TRANSLATORS: Coated Paper
-#: locale/ipp-strings.c:1784
+#: locale/ipp-strings.c:1822
 msgid "media-type.stationery-coated"
 msgstr ""
 
 #. TRANSLATORS: Stationery Cotton
-#: locale/ipp-strings.c:1786
+#: locale/ipp-strings.c:1824
 msgid "media-type.stationery-cotton"
 msgstr ""
 
 #. TRANSLATORS: Vellum Paper
-#: locale/ipp-strings.c:1788
+#: locale/ipp-strings.c:1826
 msgid "media-type.stationery-fine"
 msgstr ""
 
 #. TRANSLATORS: Heavyweight Paper
-#: locale/ipp-strings.c:1790
+#: locale/ipp-strings.c:1828
 msgid "media-type.stationery-heavyweight"
 msgstr ""
 
 #. TRANSLATORS: Stationery Heavyweight Coated
-#: locale/ipp-strings.c:1792
+#: locale/ipp-strings.c:1830
 msgid "media-type.stationery-heavyweight-coated"
 msgstr ""
 
 #. TRANSLATORS: Stationery Inkjet Paper
-#: locale/ipp-strings.c:1794
+#: locale/ipp-strings.c:1832
 msgid "media-type.stationery-inkjet"
 msgstr ""
 
 #. TRANSLATORS: Letterhead
-#: locale/ipp-strings.c:1796
+#: locale/ipp-strings.c:1834
 msgid "media-type.stationery-letterhead"
 msgstr ""
 
 #. TRANSLATORS: Lightweight Paper
-#: locale/ipp-strings.c:1798
+#: locale/ipp-strings.c:1836
 msgid "media-type.stationery-lightweight"
 msgstr ""
 
 #. TRANSLATORS: Preprinted Paper
-#: locale/ipp-strings.c:1800
+#: locale/ipp-strings.c:1838
 msgid "media-type.stationery-preprinted"
 msgstr ""
 
 #. TRANSLATORS: Punched Paper
-#: locale/ipp-strings.c:1802
+#: locale/ipp-strings.c:1840
 msgid "media-type.stationery-prepunched"
 msgstr ""
 
 #. TRANSLATORS: Tab Stock
-#: locale/ipp-strings.c:1804
+#: locale/ipp-strings.c:1842
 msgid "media-type.tab-stock"
 msgstr ""
 
 #. TRANSLATORS: Tractor
-#: locale/ipp-strings.c:1806
+#: locale/ipp-strings.c:1844
 msgid "media-type.tractor"
 msgstr ""
 
 #. TRANSLATORS: Transfer
-#: locale/ipp-strings.c:1808
+#: locale/ipp-strings.c:1846
 msgid "media-type.transfer"
 msgstr ""
 
 #. TRANSLATORS: Transparency
-#: locale/ipp-strings.c:1810
+#: locale/ipp-strings.c:1848
 msgid "media-type.transparency"
 msgstr ""
 
 #. TRANSLATORS: Triple Wall
-#: locale/ipp-strings.c:1812
+#: locale/ipp-strings.c:1850
 msgid "media-type.triple-wall"
 msgstr ""
 
 #. TRANSLATORS: Wet Film
-#: locale/ipp-strings.c:1814
+#: locale/ipp-strings.c:1852
 msgid "media-type.wet-film"
 msgstr ""
 
 #. TRANSLATORS: Media Weight (grams per m²)
-#: locale/ipp-strings.c:1816
+#: locale/ipp-strings.c:1854
 msgid "media-weight-metric"
 msgstr ""
 
 #. TRANSLATORS: 28 x 40″
-#: locale/ipp-strings.c:1818
+#: locale/ipp-strings.c:1856
 msgid "media.asme_f_28x40in"
 msgstr ""
 
 #. TRANSLATORS: A4 or US Letter
-#: locale/ipp-strings.c:1820
+#: locale/ipp-strings.c:1858
 msgid "media.choice_iso_a4_210x297mm_na_letter_8.5x11in"
 msgstr ""
 
 #. TRANSLATORS: 2a0
-#: locale/ipp-strings.c:1822
+#: locale/ipp-strings.c:1860
 msgid "media.iso_2a0_1189x1682mm"
 msgstr ""
 
 #. TRANSLATORS: A0
-#: locale/ipp-strings.c:1824
+#: locale/ipp-strings.c:1862
 msgid "media.iso_a0_841x1189mm"
 msgstr ""
 
 #. TRANSLATORS: A0x3
-#: locale/ipp-strings.c:1826
+#: locale/ipp-strings.c:1864
 msgid "media.iso_a0x3_1189x2523mm"
 msgstr ""
 
 #. TRANSLATORS: A10
-#: locale/ipp-strings.c:1828
+#: locale/ipp-strings.c:1866
 msgid "media.iso_a10_26x37mm"
 msgstr ""
 
 #. TRANSLATORS: A1
-#: locale/ipp-strings.c:1830
+#: locale/ipp-strings.c:1868
 msgid "media.iso_a1_594x841mm"
 msgstr ""
 
 #. TRANSLATORS: A1x3
-#: locale/ipp-strings.c:1832
+#: locale/ipp-strings.c:1870
 msgid "media.iso_a1x3_841x1783mm"
 msgstr ""
 
 #. TRANSLATORS: A1x4
-#: locale/ipp-strings.c:1834
+#: locale/ipp-strings.c:1872
 msgid "media.iso_a1x4_841x2378mm"
 msgstr ""
 
 #. TRANSLATORS: A2
-#: locale/ipp-strings.c:1836
+#: locale/ipp-strings.c:1874
 msgid "media.iso_a2_420x594mm"
 msgstr ""
 
 #. TRANSLATORS: A2x3
-#: locale/ipp-strings.c:1838
+#: locale/ipp-strings.c:1876
 msgid "media.iso_a2x3_594x1261mm"
 msgstr ""
 
 #. TRANSLATORS: A2x4
-#: locale/ipp-strings.c:1840
+#: locale/ipp-strings.c:1878
 msgid "media.iso_a2x4_594x1682mm"
 msgstr ""
 
 #. TRANSLATORS: A2x5
-#: locale/ipp-strings.c:1842
+#: locale/ipp-strings.c:1880
 msgid "media.iso_a2x5_594x2102mm"
 msgstr ""
 
 #. TRANSLATORS: A3 (Extra)
-#: locale/ipp-strings.c:1844
+#: locale/ipp-strings.c:1882
 msgid "media.iso_a3-extra_322x445mm"
 msgstr ""
 
 #. TRANSLATORS: A3
-#: locale/ipp-strings.c:1846
+#: locale/ipp-strings.c:1884
 msgid "media.iso_a3_297x420mm"
 msgstr ""
 
 #. TRANSLATORS: A3x3
-#: locale/ipp-strings.c:1848
+#: locale/ipp-strings.c:1886
 msgid "media.iso_a3x3_420x891mm"
 msgstr ""
 
 #. TRANSLATORS: A3x4
-#: locale/ipp-strings.c:1850
+#: locale/ipp-strings.c:1888
 msgid "media.iso_a3x4_420x1189mm"
 msgstr ""
 
 #. TRANSLATORS: A3x5
-#: locale/ipp-strings.c:1852
+#: locale/ipp-strings.c:1890
 msgid "media.iso_a3x5_420x1486mm"
 msgstr ""
 
 #. TRANSLATORS: A3x6
-#: locale/ipp-strings.c:1854
+#: locale/ipp-strings.c:1892
 msgid "media.iso_a3x6_420x1783mm"
 msgstr ""
 
 #. TRANSLATORS: A3x7
-#: locale/ipp-strings.c:1856
+#: locale/ipp-strings.c:1894
 msgid "media.iso_a3x7_420x2080mm"
 msgstr ""
 
 #. TRANSLATORS: A4 (Extra)
-#: locale/ipp-strings.c:1858
+#: locale/ipp-strings.c:1896
 msgid "media.iso_a4-extra_235.5x322.3mm"
 msgstr ""
 
 #. TRANSLATORS: A4 (Tab)
-#: locale/ipp-strings.c:1860
+#: locale/ipp-strings.c:1898
 msgid "media.iso_a4-tab_225x297mm"
 msgstr ""
 
 #. TRANSLATORS: A4
-#: locale/ipp-strings.c:1862
+#: locale/ipp-strings.c:1900
 msgid "media.iso_a4_210x297mm"
 msgstr ""
 
 #. TRANSLATORS: A4x3
-#: locale/ipp-strings.c:1864
+#: locale/ipp-strings.c:1902
 msgid "media.iso_a4x3_297x630mm"
 msgstr ""
 
 #. TRANSLATORS: A4x4
-#: locale/ipp-strings.c:1866
+#: locale/ipp-strings.c:1904
 msgid "media.iso_a4x4_297x841mm"
 msgstr ""
 
 #. TRANSLATORS: A4x5
-#: locale/ipp-strings.c:1868
+#: locale/ipp-strings.c:1906
 msgid "media.iso_a4x5_297x1051mm"
 msgstr ""
 
 #. TRANSLATORS: A4x6
-#: locale/ipp-strings.c:1870
+#: locale/ipp-strings.c:1908
 msgid "media.iso_a4x6_297x1261mm"
 msgstr ""
 
 #. TRANSLATORS: A4x7
-#: locale/ipp-strings.c:1872
+#: locale/ipp-strings.c:1910
 msgid "media.iso_a4x7_297x1471mm"
 msgstr ""
 
 #. TRANSLATORS: A4x8
-#: locale/ipp-strings.c:1874
+#: locale/ipp-strings.c:1912
 msgid "media.iso_a4x8_297x1682mm"
 msgstr ""
 
 #. TRANSLATORS: A4x9
-#: locale/ipp-strings.c:1876
+#: locale/ipp-strings.c:1914
 msgid "media.iso_a4x9_297x1892mm"
 msgstr ""
 
 #. TRANSLATORS: A5 (Extra)
-#: locale/ipp-strings.c:1878
+#: locale/ipp-strings.c:1916
 msgid "media.iso_a5-extra_174x235mm"
 msgstr ""
 
 #. TRANSLATORS: A5
-#: locale/ipp-strings.c:1880
+#: locale/ipp-strings.c:1918
 msgid "media.iso_a5_148x210mm"
 msgstr ""
 
 #. TRANSLATORS: A6
-#: locale/ipp-strings.c:1882
+#: locale/ipp-strings.c:1920
 msgid "media.iso_a6_105x148mm"
 msgstr ""
 
 #. TRANSLATORS: A7
-#: locale/ipp-strings.c:1884
+#: locale/ipp-strings.c:1922
 msgid "media.iso_a7_74x105mm"
 msgstr ""
 
 #. TRANSLATORS: A8
-#: locale/ipp-strings.c:1886
+#: locale/ipp-strings.c:1924
 msgid "media.iso_a8_52x74mm"
 msgstr ""
 
 #. TRANSLATORS: A9
-#: locale/ipp-strings.c:1888
+#: locale/ipp-strings.c:1926
 msgid "media.iso_a9_37x52mm"
 msgstr ""
 
 #. TRANSLATORS: B0
-#: locale/ipp-strings.c:1890
+#: locale/ipp-strings.c:1928
 msgid "media.iso_b0_1000x1414mm"
 msgstr ""
 
 #. TRANSLATORS: B10
-#: locale/ipp-strings.c:1892
+#: locale/ipp-strings.c:1930
 msgid "media.iso_b10_31x44mm"
 msgstr ""
 
 #. TRANSLATORS: B1
-#: locale/ipp-strings.c:1894
+#: locale/ipp-strings.c:1932
 msgid "media.iso_b1_707x1000mm"
 msgstr ""
 
 #. TRANSLATORS: B2
-#: locale/ipp-strings.c:1896
+#: locale/ipp-strings.c:1934
 msgid "media.iso_b2_500x707mm"
 msgstr ""
 
 #. TRANSLATORS: B3
-#: locale/ipp-strings.c:1898
+#: locale/ipp-strings.c:1936
 msgid "media.iso_b3_353x500mm"
 msgstr ""
 
 #. TRANSLATORS: B4
-#: locale/ipp-strings.c:1900
+#: locale/ipp-strings.c:1938
 msgid "media.iso_b4_250x353mm"
 msgstr ""
 
 #. TRANSLATORS: B5 (Extra)
-#: locale/ipp-strings.c:1902
+#: locale/ipp-strings.c:1940
 msgid "media.iso_b5-extra_201x276mm"
 msgstr ""
 
 #. TRANSLATORS: Envelope B5
-#: locale/ipp-strings.c:1904
+#: locale/ipp-strings.c:1942
 msgid "media.iso_b5_176x250mm"
 msgstr ""
 
 #. TRANSLATORS: B6
-#: locale/ipp-strings.c:1906
+#: locale/ipp-strings.c:1944
 msgid "media.iso_b6_125x176mm"
 msgstr ""
 
 #. TRANSLATORS: Envelope B6/C4
-#: locale/ipp-strings.c:1908
+#: locale/ipp-strings.c:1946
 msgid "media.iso_b6c4_125x324mm"
 msgstr ""
 
 #. TRANSLATORS: B7
-#: locale/ipp-strings.c:1910
+#: locale/ipp-strings.c:1948
 msgid "media.iso_b7_88x125mm"
 msgstr ""
 
 #. TRANSLATORS: B8
-#: locale/ipp-strings.c:1912
+#: locale/ipp-strings.c:1950
 msgid "media.iso_b8_62x88mm"
 msgstr ""
 
 #. TRANSLATORS: B9
-#: locale/ipp-strings.c:1914
+#: locale/ipp-strings.c:1952
 msgid "media.iso_b9_44x62mm"
 msgstr ""
 
 #. TRANSLATORS: CEnvelope 0
-#: locale/ipp-strings.c:1916
+#: locale/ipp-strings.c:1954
 msgid "media.iso_c0_917x1297mm"
 msgstr ""
 
 #. TRANSLATORS: CEnvelope 10
-#: locale/ipp-strings.c:1918
+#: locale/ipp-strings.c:1956
 msgid "media.iso_c10_28x40mm"
 msgstr ""
 
 #. TRANSLATORS: CEnvelope 1
-#: locale/ipp-strings.c:1920
+#: locale/ipp-strings.c:1958
 msgid "media.iso_c1_648x917mm"
 msgstr ""
 
 #. TRANSLATORS: CEnvelope 2
-#: locale/ipp-strings.c:1922
+#: locale/ipp-strings.c:1960
 msgid "media.iso_c2_458x648mm"
 msgstr ""
 
 #. TRANSLATORS: CEnvelope 3
-#: locale/ipp-strings.c:1924
+#: locale/ipp-strings.c:1962
 msgid "media.iso_c3_324x458mm"
 msgstr ""
 
 #. TRANSLATORS: CEnvelope 4
-#: locale/ipp-strings.c:1926
+#: locale/ipp-strings.c:1964
 msgid "media.iso_c4_229x324mm"
 msgstr ""
 
 #. TRANSLATORS: CEnvelope 5
-#: locale/ipp-strings.c:1928
+#: locale/ipp-strings.c:1966
 msgid "media.iso_c5_162x229mm"
 msgstr ""
 
 #. TRANSLATORS: CEnvelope 6
-#: locale/ipp-strings.c:1930
+#: locale/ipp-strings.c:1968
 msgid "media.iso_c6_114x162mm"
 msgstr ""
 
 #. TRANSLATORS: CEnvelope 6c5
-#: locale/ipp-strings.c:1932
+#: locale/ipp-strings.c:1970
 msgid "media.iso_c6c5_114x229mm"
 msgstr ""
 
 #. TRANSLATORS: CEnvelope 7
-#: locale/ipp-strings.c:1934
+#: locale/ipp-strings.c:1972
 msgid "media.iso_c7_81x114mm"
 msgstr ""
 
 #. TRANSLATORS: CEnvelope 7c6
-#: locale/ipp-strings.c:1936
+#: locale/ipp-strings.c:1974
 msgid "media.iso_c7c6_81x162mm"
 msgstr ""
 
 #. TRANSLATORS: CEnvelope 8
-#: locale/ipp-strings.c:1938
+#: locale/ipp-strings.c:1976
 msgid "media.iso_c8_57x81mm"
 msgstr ""
 
 #. TRANSLATORS: CEnvelope 9
-#: locale/ipp-strings.c:1940
+#: locale/ipp-strings.c:1978
 msgid "media.iso_c9_40x57mm"
 msgstr ""
 
 #. TRANSLATORS: Envelope DL
-#: locale/ipp-strings.c:1942
+#: locale/ipp-strings.c:1980
 msgid "media.iso_dl_110x220mm"
 msgstr ""
 
 #. TRANSLATORS: Id-1
-#: locale/ipp-strings.c:1944
+#: locale/ipp-strings.c:1982
 msgid "media.iso_id-1_53.98x85.6mm"
 msgstr ""
 
 #. TRANSLATORS: Id-3
-#: locale/ipp-strings.c:1946
+#: locale/ipp-strings.c:1984
 msgid "media.iso_id-3_88x125mm"
 msgstr ""
 
 #. TRANSLATORS: ISO RA0
-#: locale/ipp-strings.c:1948
+#: locale/ipp-strings.c:1986
 msgid "media.iso_ra0_860x1220mm"
 msgstr ""
 
 #. TRANSLATORS: ISO RA1
-#: locale/ipp-strings.c:1950
+#: locale/ipp-strings.c:1988
 msgid "media.iso_ra1_610x860mm"
 msgstr ""
 
 #. TRANSLATORS: ISO RA2
-#: locale/ipp-strings.c:1952
+#: locale/ipp-strings.c:1990
 msgid "media.iso_ra2_430x610mm"
 msgstr ""
 
 #. TRANSLATORS: ISO RA3
-#: locale/ipp-strings.c:1954
+#: locale/ipp-strings.c:1992
 msgid "media.iso_ra3_305x430mm"
 msgstr ""
 
 #. TRANSLATORS: ISO RA4
-#: locale/ipp-strings.c:1956
+#: locale/ipp-strings.c:1994
 msgid "media.iso_ra4_215x305mm"
 msgstr ""
 
 #. TRANSLATORS: ISO SRA0
-#: locale/ipp-strings.c:1958
+#: locale/ipp-strings.c:1996
 msgid "media.iso_sra0_900x1280mm"
 msgstr ""
 
 #. TRANSLATORS: ISO SRA1
-#: locale/ipp-strings.c:1960
+#: locale/ipp-strings.c:1998
 msgid "media.iso_sra1_640x900mm"
 msgstr ""
 
 #. TRANSLATORS: ISO SRA2
-#: locale/ipp-strings.c:1962
+#: locale/ipp-strings.c:2000
 msgid "media.iso_sra2_450x640mm"
 msgstr ""
 
 #. TRANSLATORS: ISO SRA3
-#: locale/ipp-strings.c:1964
+#: locale/ipp-strings.c:2002
 msgid "media.iso_sra3_320x450mm"
 msgstr ""
 
 #. TRANSLATORS: ISO SRA4
-#: locale/ipp-strings.c:1966
+#: locale/ipp-strings.c:2004
 msgid "media.iso_sra4_225x320mm"
 msgstr ""
 
 #. TRANSLATORS: JIS B0
-#: locale/ipp-strings.c:1968
+#: locale/ipp-strings.c:2006
 msgid "media.jis_b0_1030x1456mm"
 msgstr ""
 
 #. TRANSLATORS: JIS B10
-#: locale/ipp-strings.c:1970
+#: locale/ipp-strings.c:2008
 msgid "media.jis_b10_32x45mm"
 msgstr ""
 
 #. TRANSLATORS: JIS B1
-#: locale/ipp-strings.c:1972
+#: locale/ipp-strings.c:2010
 msgid "media.jis_b1_728x1030mm"
 msgstr ""
 
 #. TRANSLATORS: JIS B2
-#: locale/ipp-strings.c:1974
+#: locale/ipp-strings.c:2012
 msgid "media.jis_b2_515x728mm"
 msgstr ""
 
 #. TRANSLATORS: JIS B3
-#: locale/ipp-strings.c:1976
+#: locale/ipp-strings.c:2014
 msgid "media.jis_b3_364x515mm"
 msgstr ""
 
 #. TRANSLATORS: JIS B4
-#: locale/ipp-strings.c:1978
+#: locale/ipp-strings.c:2016
 msgid "media.jis_b4_257x364mm"
 msgstr ""
 
 #. TRANSLATORS: JIS B5
-#: locale/ipp-strings.c:1980
+#: locale/ipp-strings.c:2018
 msgid "media.jis_b5_182x257mm"
 msgstr ""
 
 #. TRANSLATORS: JIS B6
-#: locale/ipp-strings.c:1982
+#: locale/ipp-strings.c:2020
 msgid "media.jis_b6_128x182mm"
 msgstr ""
 
 #. TRANSLATORS: JIS B7
-#: locale/ipp-strings.c:1984
+#: locale/ipp-strings.c:2022
 msgid "media.jis_b7_91x128mm"
 msgstr ""
 
 #. TRANSLATORS: JIS B8
-#: locale/ipp-strings.c:1986
+#: locale/ipp-strings.c:2024
 msgid "media.jis_b8_64x91mm"
 msgstr ""
 
 #. TRANSLATORS: JIS B9
-#: locale/ipp-strings.c:1988
+#: locale/ipp-strings.c:2026
 msgid "media.jis_b9_45x64mm"
 msgstr ""
 
 #. TRANSLATORS: JIS Executive
-#: locale/ipp-strings.c:1990
+#: locale/ipp-strings.c:2028
 msgid "media.jis_exec_216x330mm"
 msgstr ""
 
 #. TRANSLATORS: Envelope Chou 2
-#: locale/ipp-strings.c:1992
+#: locale/ipp-strings.c:2030
 msgid "media.jpn_chou2_111.1x146mm"
 msgstr ""
 
 #. TRANSLATORS: Envelope Chou 3
-#: locale/ipp-strings.c:1994
+#: locale/ipp-strings.c:2032
 msgid "media.jpn_chou3_120x235mm"
 msgstr ""
 
 #. TRANSLATORS: Envelope Chou 40
-#: locale/ipp-strings.c:1996
+#: locale/ipp-strings.c:2034
 msgid "media.jpn_chou40_90x225mm"
 msgstr ""
 
 #. TRANSLATORS: Envelope Chou 4
-#: locale/ipp-strings.c:1998
+#: locale/ipp-strings.c:2036
 msgid "media.jpn_chou4_90x205mm"
 msgstr ""
 
 #. TRANSLATORS: Hagaki
-#: locale/ipp-strings.c:2000
+#: locale/ipp-strings.c:2038
 msgid "media.jpn_hagaki_100x148mm"
 msgstr ""
 
 #. TRANSLATORS: Envelope Kahu
-#: locale/ipp-strings.c:2002
+#: locale/ipp-strings.c:2040
 msgid "media.jpn_kahu_240x322.1mm"
 msgstr ""
 
 #. TRANSLATORS: 270 x 382mm
-#: locale/ipp-strings.c:2004
+#: locale/ipp-strings.c:2042
 msgid "media.jpn_kaku1_270x382mm"
 msgstr ""
 
 #. TRANSLATORS: Envelope Kahu 2
-#: locale/ipp-strings.c:2006
+#: locale/ipp-strings.c:2044
 msgid "media.jpn_kaku2_240x332mm"
 msgstr ""
 
 #. TRANSLATORS: 216 x 277mm
-#: locale/ipp-strings.c:2008
+#: locale/ipp-strings.c:2046
 msgid "media.jpn_kaku3_216x277mm"
 msgstr ""
 
 #. TRANSLATORS: 197 x 267mm
-#: locale/ipp-strings.c:2010
+#: locale/ipp-strings.c:2048
 msgid "media.jpn_kaku4_197x267mm"
 msgstr ""
 
 #. TRANSLATORS: 190 x 240mm
-#: locale/ipp-strings.c:2012
+#: locale/ipp-strings.c:2050
 msgid "media.jpn_kaku5_190x240mm"
 msgstr ""
 
 #. TRANSLATORS: 142 x 205mm
-#: locale/ipp-strings.c:2014
+#: locale/ipp-strings.c:2052
 msgid "media.jpn_kaku7_142x205mm"
 msgstr ""
 
 #. TRANSLATORS: 119 x 197mm
-#: locale/ipp-strings.c:2016
+#: locale/ipp-strings.c:2054
 msgid "media.jpn_kaku8_119x197mm"
 msgstr ""
 
 #. TRANSLATORS: Oufuku Reply Postcard
-#: locale/ipp-strings.c:2018
+#: locale/ipp-strings.c:2056
 msgid "media.jpn_oufuku_148x200mm"
 msgstr ""
 
 #. TRANSLATORS: Envelope You 4
-#: locale/ipp-strings.c:2020
+#: locale/ipp-strings.c:2058
 msgid "media.jpn_you4_105x235mm"
 msgstr ""
 
 #. TRANSLATORS: 10 x 11″
-#: locale/ipp-strings.c:2022
+#: locale/ipp-strings.c:2060
 msgid "media.na_10x11_10x11in"
 msgstr ""
 
 #. TRANSLATORS: 10 x 13″
-#: locale/ipp-strings.c:2024
+#: locale/ipp-strings.c:2062
 msgid "media.na_10x13_10x13in"
 msgstr ""
 
 #. TRANSLATORS: 10 x 14″
-#: locale/ipp-strings.c:2026
+#: locale/ipp-strings.c:2064
 msgid "media.na_10x14_10x14in"
 msgstr ""
 
 #. TRANSLATORS: 10 x 15″
-#: locale/ipp-strings.c:2028
+#: locale/ipp-strings.c:2066
 msgid "media.na_10x15_10x15in"
 msgstr ""
 
 #. TRANSLATORS: 11 x 12″
-#: locale/ipp-strings.c:2030
+#: locale/ipp-strings.c:2068
 msgid "media.na_11x12_11x12in"
 msgstr ""
 
 #. TRANSLATORS: 11 x 15″
-#: locale/ipp-strings.c:2032
+#: locale/ipp-strings.c:2070
 msgid "media.na_11x15_11x15in"
 msgstr ""
 
 #. TRANSLATORS: 12 x 19″
-#: locale/ipp-strings.c:2034
+#: locale/ipp-strings.c:2072
 msgid "media.na_12x19_12x19in"
 msgstr ""
 
 #. TRANSLATORS: 5 x 7″
-#: locale/ipp-strings.c:2036
+#: locale/ipp-strings.c:2074
 msgid "media.na_5x7_5x7in"
 msgstr ""
 
 #. TRANSLATORS: 6 x 9″
-#: locale/ipp-strings.c:2038
+#: locale/ipp-strings.c:2076
 msgid "media.na_6x9_6x9in"
 msgstr ""
 
 #. TRANSLATORS: 7 x 9″
-#: locale/ipp-strings.c:2040
+#: locale/ipp-strings.c:2078
 msgid "media.na_7x9_7x9in"
 msgstr ""
 
 #. TRANSLATORS: 9 x 11″
-#: locale/ipp-strings.c:2042
+#: locale/ipp-strings.c:2080
 msgid "media.na_9x11_9x11in"
 msgstr ""
 
 #. TRANSLATORS: Envelope A2
-#: locale/ipp-strings.c:2044
+#: locale/ipp-strings.c:2082
 msgid "media.na_a2_4.375x5.75in"
 msgstr ""
 
 #. TRANSLATORS: 9 x 12″
-#: locale/ipp-strings.c:2046
+#: locale/ipp-strings.c:2084
 msgid "media.na_arch-a_9x12in"
 msgstr ""
 
 #. TRANSLATORS: 12 x 18″
-#: locale/ipp-strings.c:2048
+#: locale/ipp-strings.c:2086
 msgid "media.na_arch-b_12x18in"
 msgstr ""
 
 #. TRANSLATORS: 18 x 24″
-#: locale/ipp-strings.c:2050
+#: locale/ipp-strings.c:2088
 msgid "media.na_arch-c_18x24in"
 msgstr ""
 
 #. TRANSLATORS: 24 x 36″
-#: locale/ipp-strings.c:2052
+#: locale/ipp-strings.c:2090
 msgid "media.na_arch-d_24x36in"
 msgstr ""
 
 #. TRANSLATORS: 26 x 38″
-#: locale/ipp-strings.c:2054
+#: locale/ipp-strings.c:2092
 msgid "media.na_arch-e2_26x38in"
 msgstr ""
 
 #. TRANSLATORS: 27 x 39″
-#: locale/ipp-strings.c:2056
+#: locale/ipp-strings.c:2094
 msgid "media.na_arch-e3_27x39in"
 msgstr ""
 
 #. TRANSLATORS: 36 x 48″
-#: locale/ipp-strings.c:2058
+#: locale/ipp-strings.c:2096
 msgid "media.na_arch-e_36x48in"
 msgstr ""
 
 #. TRANSLATORS: 12 x 19.17″
-#: locale/ipp-strings.c:2060
+#: locale/ipp-strings.c:2098
 msgid "media.na_b-plus_12x19.17in"
 msgstr ""
 
 #. TRANSLATORS: Envelope C5
-#: locale/ipp-strings.c:2062
+#: locale/ipp-strings.c:2100
 msgid "media.na_c5_6.5x9.5in"
 msgstr ""
 
 #. TRANSLATORS: 17 x 22″
-#: locale/ipp-strings.c:2064
+#: locale/ipp-strings.c:2102
 msgid "media.na_c_17x22in"
 msgstr ""
 
 #. TRANSLATORS: 22 x 34″
-#: locale/ipp-strings.c:2066
+#: locale/ipp-strings.c:2104
 msgid "media.na_d_22x34in"
 msgstr ""
 
 #. TRANSLATORS: 34 x 44″
-#: locale/ipp-strings.c:2068
+#: locale/ipp-strings.c:2106
 msgid "media.na_e_34x44in"
 msgstr ""
 
 #. TRANSLATORS: 11 x 14″
-#: locale/ipp-strings.c:2070
+#: locale/ipp-strings.c:2108
 msgid "media.na_edp_11x14in"
 msgstr ""
 
 #. TRANSLATORS: 12 x 14″
-#: locale/ipp-strings.c:2072
+#: locale/ipp-strings.c:2110
 msgid "media.na_eur-edp_12x14in"
 msgstr ""
 
 #. TRANSLATORS: Executive
-#: locale/ipp-strings.c:2074
+#: locale/ipp-strings.c:2112
 msgid "media.na_executive_7.25x10.5in"
 msgstr ""
 
 #. TRANSLATORS: 44 x 68″
-#: locale/ipp-strings.c:2076
+#: locale/ipp-strings.c:2114
 msgid "media.na_f_44x68in"
 msgstr ""
 
 #. TRANSLATORS: European Fanfold
-#: locale/ipp-strings.c:2078
+#: locale/ipp-strings.c:2116
 msgid "media.na_fanfold-eur_8.5x12in"
 msgstr ""
 
 #. TRANSLATORS: US Fanfold
-#: locale/ipp-strings.c:2080
+#: locale/ipp-strings.c:2118
 msgid "media.na_fanfold-us_11x14.875in"
 msgstr ""
 
 #. TRANSLATORS: Foolscap
-#: locale/ipp-strings.c:2082
+#: locale/ipp-strings.c:2120
 msgid "media.na_foolscap_8.5x13in"
 msgstr ""
 
 #. TRANSLATORS: 8 x 13″
-#: locale/ipp-strings.c:2084
+#: locale/ipp-strings.c:2122
 msgid "media.na_govt-legal_8x13in"
 msgstr ""
 
 #. TRANSLATORS: 8 x 10″
-#: locale/ipp-strings.c:2086
+#: locale/ipp-strings.c:2124
 msgid "media.na_govt-letter_8x10in"
 msgstr ""
 
 #. TRANSLATORS: 3 x 5″
-#: locale/ipp-strings.c:2088
+#: locale/ipp-strings.c:2126
 msgid "media.na_index-3x5_3x5in"
 msgstr ""
 
 #. TRANSLATORS: 6 x 8″
-#: locale/ipp-strings.c:2090
+#: locale/ipp-strings.c:2128
 msgid "media.na_index-4x6-ext_6x8in"
 msgstr ""
 
 #. TRANSLATORS: 4 x 6″
-#: locale/ipp-strings.c:2092
+#: locale/ipp-strings.c:2130
 msgid "media.na_index-4x6_4x6in"
 msgstr ""
 
 #. TRANSLATORS: 5 x 8″
-#: locale/ipp-strings.c:2094
+#: locale/ipp-strings.c:2132
 msgid "media.na_index-5x8_5x8in"
 msgstr ""
 
 #. TRANSLATORS: Statement
-#: locale/ipp-strings.c:2096
+#: locale/ipp-strings.c:2134
 msgid "media.na_invoice_5.5x8.5in"
 msgstr ""
 
 #. TRANSLATORS: 11 x 17″
-#: locale/ipp-strings.c:2098
+#: locale/ipp-strings.c:2136
 msgid "media.na_ledger_11x17in"
 msgstr ""
 
 #. TRANSLATORS: US Legal (Extra)
-#: locale/ipp-strings.c:2100
+#: locale/ipp-strings.c:2138
 msgid "media.na_legal-extra_9.5x15in"
 msgstr ""
 
 #. TRANSLATORS: US Legal
-#: locale/ipp-strings.c:2102
+#: locale/ipp-strings.c:2140
 msgid "media.na_legal_8.5x14in"
 msgstr ""
 
 #. TRANSLATORS: US Letter (Extra)
-#: locale/ipp-strings.c:2104
+#: locale/ipp-strings.c:2142
 msgid "media.na_letter-extra_9.5x12in"
 msgstr ""
 
 #. TRANSLATORS: US Letter (Plus)
-#: locale/ipp-strings.c:2106
+#: locale/ipp-strings.c:2144
 msgid "media.na_letter-plus_8.5x12.69in"
 msgstr ""
 
 #. TRANSLATORS: US Letter
-#: locale/ipp-strings.c:2108
+#: locale/ipp-strings.c:2146
 msgid "media.na_letter_8.5x11in"
 msgstr ""
 
 #. TRANSLATORS: Envelope Monarch
-#: locale/ipp-strings.c:2110
+#: locale/ipp-strings.c:2148
 msgid "media.na_monarch_3.875x7.5in"
 msgstr ""
 
 #. TRANSLATORS: Envelope #10
-#: locale/ipp-strings.c:2112
+#: locale/ipp-strings.c:2150
 msgid "media.na_number-10_4.125x9.5in"
 msgstr ""
 
 #. TRANSLATORS: Envelope #11
-#: locale/ipp-strings.c:2114
+#: locale/ipp-strings.c:2152
 msgid "media.na_number-11_4.5x10.375in"
 msgstr ""
 
 #. TRANSLATORS: Envelope #12
-#: locale/ipp-strings.c:2116
+#: locale/ipp-strings.c:2154
 msgid "media.na_number-12_4.75x11in"
 msgstr ""
 
 #. TRANSLATORS: Envelope #14
-#: locale/ipp-strings.c:2118
+#: locale/ipp-strings.c:2156
 msgid "media.na_number-14_5x11.5in"
 msgstr ""
 
 #. TRANSLATORS: Envelope #9
-#: locale/ipp-strings.c:2120
+#: locale/ipp-strings.c:2158
 msgid "media.na_number-9_3.875x8.875in"
 msgstr ""
 
 #. TRANSLATORS: 8.5 x 13.4″
-#: locale/ipp-strings.c:2122
+#: locale/ipp-strings.c:2160
 msgid "media.na_oficio_8.5x13.4in"
 msgstr ""
 
 #. TRANSLATORS: Envelope Personal
-#: locale/ipp-strings.c:2124
+#: locale/ipp-strings.c:2162
 msgid "media.na_personal_3.625x6.5in"
 msgstr ""
 
 #. TRANSLATORS: Quarto
-#: locale/ipp-strings.c:2126
+#: locale/ipp-strings.c:2164
 msgid "media.na_quarto_8.5x10.83in"
 msgstr ""
 
 #. TRANSLATORS: 8.94 x 14″
-#: locale/ipp-strings.c:2128
+#: locale/ipp-strings.c:2166
 msgid "media.na_super-a_8.94x14in"
 msgstr ""
 
 #. TRANSLATORS: 13 x 19″
-#: locale/ipp-strings.c:2130
+#: locale/ipp-strings.c:2168
 msgid "media.na_super-b_13x19in"
 msgstr ""
 
 #. TRANSLATORS: 30 x 42″
-#: locale/ipp-strings.c:2132
+#: locale/ipp-strings.c:2170
 msgid "media.na_wide-format_30x42in"
 msgstr ""
 
 #. TRANSLATORS: 12 x 16″
-#: locale/ipp-strings.c:2134
+#: locale/ipp-strings.c:2172
 msgid "media.oe_12x16_12x16in"
 msgstr ""
 
 #. TRANSLATORS: 14 x 17″
-#: locale/ipp-strings.c:2136
+#: locale/ipp-strings.c:2174
 msgid "media.oe_14x17_14x17in"
 msgstr ""
 
 #. TRANSLATORS: 18 x 22″
-#: locale/ipp-strings.c:2138
+#: locale/ipp-strings.c:2176
 msgid "media.oe_18x22_18x22in"
 msgstr ""
 
 #. TRANSLATORS: 17 x 24″
-#: locale/ipp-strings.c:2140
+#: locale/ipp-strings.c:2178
 msgid "media.oe_a2plus_17x24in"
 msgstr ""
 
 #. TRANSLATORS: 2 x 3.5″
-#: locale/ipp-strings.c:2142
+#: locale/ipp-strings.c:2180
 msgid "media.oe_business-card_2x3.5in"
 msgstr ""
 
 #. TRANSLATORS: 10 x 12″
-#: locale/ipp-strings.c:2144
+#: locale/ipp-strings.c:2182
 msgid "media.oe_photo-10r_10x12in"
 msgstr ""
 
 #. TRANSLATORS: 20 x 24″
-#: locale/ipp-strings.c:2146
+#: locale/ipp-strings.c:2184
 msgid "media.oe_photo-20r_20x24in"
 msgstr ""
 
 #. TRANSLATORS: 3.5 x 5″
-#: locale/ipp-strings.c:2148
+#: locale/ipp-strings.c:2186
 msgid "media.oe_photo-l_3.5x5in"
 msgstr ""
 
 #. TRANSLATORS: 10 x 15″
-#: locale/ipp-strings.c:2150
+#: locale/ipp-strings.c:2188
 msgid "media.oe_photo-s10r_10x15in"
 msgstr ""
 
 #. TRANSLATORS: 4 x 4″
-#: locale/ipp-strings.c:2152
+#: locale/ipp-strings.c:2190
 msgid "media.oe_square-photo_4x4in"
 msgstr ""
 
 #. TRANSLATORS: 5 x 5″
-#: locale/ipp-strings.c:2154
+#: locale/ipp-strings.c:2192
 msgid "media.oe_square-photo_5x5in"
 msgstr ""
 
 #. TRANSLATORS: 184 x 260mm
-#: locale/ipp-strings.c:2156
+#: locale/ipp-strings.c:2194
 msgid "media.om_16k_184x260mm"
 msgstr ""
 
 #. TRANSLATORS: 195 x 270mm
-#: locale/ipp-strings.c:2158
+#: locale/ipp-strings.c:2196
 msgid "media.om_16k_195x270mm"
 msgstr ""
 
 #. TRANSLATORS: 55 x 85mm
-#: locale/ipp-strings.c:2160
+#: locale/ipp-strings.c:2198
 msgid "media.om_business-card_55x85mm"
 msgstr ""
 
 #. TRANSLATORS: 55 x 91mm
-#: locale/ipp-strings.c:2162
+#: locale/ipp-strings.c:2200
 msgid "media.om_business-card_55x91mm"
 msgstr ""
 
 #. TRANSLATORS: 54 x 86mm
-#: locale/ipp-strings.c:2164
+#: locale/ipp-strings.c:2202
 msgid "media.om_card_54x86mm"
 msgstr ""
 
 #. TRANSLATORS: 275 x 395mm
-#: locale/ipp-strings.c:2166
+#: locale/ipp-strings.c:2204
 msgid "media.om_dai-pa-kai_275x395mm"
 msgstr ""
 
 #. TRANSLATORS: 89 x 119mm
-#: locale/ipp-strings.c:2168
+#: locale/ipp-strings.c:2206
 msgid "media.om_dsc-photo_89x119mm"
 msgstr ""
 
 #. TRANSLATORS: Folio
-#: locale/ipp-strings.c:2170
+#: locale/ipp-strings.c:2208
 msgid "media.om_folio-sp_215x315mm"
 msgstr ""
 
 #. TRANSLATORS: Folio (Special)
-#: locale/ipp-strings.c:2172
+#: locale/ipp-strings.c:2210
 msgid "media.om_folio_210x330mm"
 msgstr ""
 
 #. TRANSLATORS: Envelope Invitation
-#: locale/ipp-strings.c:2174
+#: locale/ipp-strings.c:2212
 msgid "media.om_invite_220x220mm"
 msgstr ""
 
 #. TRANSLATORS: Envelope Italian
-#: locale/ipp-strings.c:2176
+#: locale/ipp-strings.c:2214
 msgid "media.om_italian_110x230mm"
 msgstr ""
 
 #. TRANSLATORS: 198 x 275mm
-#: locale/ipp-strings.c:2178
+#: locale/ipp-strings.c:2216
 msgid "media.om_juuro-ku-kai_198x275mm"
 msgstr ""
 
 #. TRANSLATORS: 200 x 300
-#: locale/ipp-strings.c:2180
+#: locale/ipp-strings.c:2218
 msgid "media.om_large-photo_200x300"
 msgstr ""
 
 #. TRANSLATORS: 130 x 180mm
-#: locale/ipp-strings.c:2182
+#: locale/ipp-strings.c:2220
 msgid "media.om_medium-photo_130x180mm"
 msgstr ""
 
 #. TRANSLATORS: 267 x 389mm
-#: locale/ipp-strings.c:2184
+#: locale/ipp-strings.c:2222
 msgid "media.om_pa-kai_267x389mm"
 msgstr ""
 
 #. TRANSLATORS: Envelope Postfix
-#: locale/ipp-strings.c:2186
+#: locale/ipp-strings.c:2224
 msgid "media.om_postfix_114x229mm"
 msgstr ""
 
 #. TRANSLATORS: 100 x 150mm
-#: locale/ipp-strings.c:2188
+#: locale/ipp-strings.c:2226
 msgid "media.om_small-photo_100x150mm"
 msgstr ""
 
 #. TRANSLATORS: 89 x 89mm
-#: locale/ipp-strings.c:2190
+#: locale/ipp-strings.c:2228
 msgid "media.om_square-photo_89x89mm"
 msgstr ""
 
 #. TRANSLATORS: 100 x 200mm
-#: locale/ipp-strings.c:2192
+#: locale/ipp-strings.c:2230
 msgid "media.om_wide-photo_100x200mm"
 msgstr ""
 
 #. TRANSLATORS: Envelope Chinese #10
-#: locale/ipp-strings.c:2194
+#: locale/ipp-strings.c:2232
 msgid "media.prc_10_324x458mm"
 msgstr ""
 
 #. TRANSLATORS: Chinese 16k
-#: locale/ipp-strings.c:2196
+#: locale/ipp-strings.c:2234
 msgid "media.prc_16k_146x215mm"
 msgstr ""
 
 #. TRANSLATORS: Envelope Chinese #1
-#: locale/ipp-strings.c:2198
+#: locale/ipp-strings.c:2236
 msgid "media.prc_1_102x165mm"
 msgstr ""
 
 #. TRANSLATORS: Envelope Chinese #2
-#: locale/ipp-strings.c:2200
+#: locale/ipp-strings.c:2238
 msgid "media.prc_2_102x176mm"
 msgstr ""
 
 #. TRANSLATORS: Chinese 32k
-#: locale/ipp-strings.c:2202
+#: locale/ipp-strings.c:2240
 msgid "media.prc_32k_97x151mm"
 msgstr ""
 
 #. TRANSLATORS: Envelope Chinese #3
-#: locale/ipp-strings.c:2204
+#: locale/ipp-strings.c:2242
 msgid "media.prc_3_125x176mm"
 msgstr ""
 
 #. TRANSLATORS: Envelope Chinese #4
-#: locale/ipp-strings.c:2206
+#: locale/ipp-strings.c:2244
 msgid "media.prc_4_110x208mm"
 msgstr ""
 
 #. TRANSLATORS: Envelope Chinese #5
-#: locale/ipp-strings.c:2208
+#: locale/ipp-strings.c:2246
 msgid "media.prc_5_110x220mm"
 msgstr ""
 
 #. TRANSLATORS: Envelope Chinese #6
-#: locale/ipp-strings.c:2210
+#: locale/ipp-strings.c:2248
 msgid "media.prc_6_120x320mm"
 msgstr ""
 
 #. TRANSLATORS: Envelope Chinese #7
-#: locale/ipp-strings.c:2212
+#: locale/ipp-strings.c:2250
 msgid "media.prc_7_160x230mm"
 msgstr ""
 
 #. TRANSLATORS: Envelope Chinese #8
-#: locale/ipp-strings.c:2214
+#: locale/ipp-strings.c:2252
 msgid "media.prc_8_120x309mm"
 msgstr ""
 
 #. TRANSLATORS: ROC 16k
-#: locale/ipp-strings.c:2216
+#: locale/ipp-strings.c:2254
 msgid "media.roc_16k_7.75x10.75in"
 msgstr ""
 
 #. TRANSLATORS: ROC 8k
-#: locale/ipp-strings.c:2218
+#: locale/ipp-strings.c:2256
 msgid "media.roc_8k_10.75x15.5in"
 msgstr ""
 
@@ -12806,82 +12925,82 @@
 msgstr ""
 
 #. TRANSLATORS: Multiple Document Handling
-#: locale/ipp-strings.c:2220
+#: locale/ipp-strings.c:2258
 msgid "multiple-document-handling"
 msgstr ""
 
 #. TRANSLATORS: Separate Documents Collated Copies
-#: locale/ipp-strings.c:2222
+#: locale/ipp-strings.c:2260
 msgid "multiple-document-handling.separate-documents-collated-copies"
 msgstr ""
 
 #. TRANSLATORS: Separate Documents Uncollated Copies
-#: locale/ipp-strings.c:2224
+#: locale/ipp-strings.c:2262
 msgid "multiple-document-handling.separate-documents-uncollated-copies"
 msgstr ""
 
 #. TRANSLATORS: Single Document
-#: locale/ipp-strings.c:2226
+#: locale/ipp-strings.c:2264
 msgid "multiple-document-handling.single-document"
 msgstr ""
 
 #. TRANSLATORS: Single Document New Sheet
-#: locale/ipp-strings.c:2228
+#: locale/ipp-strings.c:2266
 msgid "multiple-document-handling.single-document-new-sheet"
 msgstr ""
 
 #. TRANSLATORS: Multiple Object Handling
-#: locale/ipp-strings.c:2230
+#: locale/ipp-strings.c:2268
 msgid "multiple-object-handling"
 msgstr ""
 
 #. TRANSLATORS: Multiple Object Handling Actual
-#: locale/ipp-strings.c:2232
+#: locale/ipp-strings.c:2270
 msgid "multiple-object-handling-actual"
 msgstr ""
 
 #. TRANSLATORS: Automatic
-#: locale/ipp-strings.c:2234
+#: locale/ipp-strings.c:2272
 msgid "multiple-object-handling.auto"
 msgstr ""
 
 #. TRANSLATORS: Best Fit
-#: locale/ipp-strings.c:2236
+#: locale/ipp-strings.c:2274
 msgid "multiple-object-handling.best-fit"
 msgstr ""
 
 #. TRANSLATORS: Best Quality
-#: locale/ipp-strings.c:2238
+#: locale/ipp-strings.c:2276
 msgid "multiple-object-handling.best-quality"
 msgstr ""
 
 #. TRANSLATORS: Best Speed
-#: locale/ipp-strings.c:2240
+#: locale/ipp-strings.c:2278
 msgid "multiple-object-handling.best-speed"
 msgstr ""
 
 #. TRANSLATORS: One At A Time
-#: locale/ipp-strings.c:2242
+#: locale/ipp-strings.c:2280
 msgid "multiple-object-handling.one-at-a-time"
 msgstr ""
 
 #. TRANSLATORS: On Timeout
-#: locale/ipp-strings.c:2244
+#: locale/ipp-strings.c:2282
 msgid "multiple-operation-time-out-action"
 msgstr ""
 
 #. TRANSLATORS: Abort Job
-#: locale/ipp-strings.c:2246
+#: locale/ipp-strings.c:2284
 msgid "multiple-operation-time-out-action.abort-job"
 msgstr ""
 
 #. TRANSLATORS: Hold Job
-#: locale/ipp-strings.c:2248
+#: locale/ipp-strings.c:2286
 msgid "multiple-operation-time-out-action.hold-job"
 msgstr ""
 
 #. TRANSLATORS: Process Job
-#: locale/ipp-strings.c:2250
+#: locale/ipp-strings.c:2288
 msgid "multiple-operation-time-out-action.process-job"
 msgstr ""
 
@@ -12894,22 +13013,22 @@
 msgstr ""
 
 #. TRANSLATORS: Noise Removal
-#: locale/ipp-strings.c:2252
+#: locale/ipp-strings.c:2290
 msgid "noise-removal"
 msgstr ""
 
 #. TRANSLATORS: Notify Attributes
-#: locale/ipp-strings.c:2254
+#: locale/ipp-strings.c:2292
 msgid "notify-attributes"
 msgstr ""
 
 #. TRANSLATORS: Notify Charset
-#: locale/ipp-strings.c:2256
+#: locale/ipp-strings.c:2294
 msgid "notify-charset"
 msgstr ""
 
 #. TRANSLATORS: Notify Events
-#: locale/ipp-strings.c:2258
+#: locale/ipp-strings.c:2296
 msgid "notify-events"
 msgstr ""
 
@@ -12918,137 +13037,137 @@
 msgstr ""
 
 #. TRANSLATORS: Document Completed
-#: locale/ipp-strings.c:2260
+#: locale/ipp-strings.c:2298
 msgid "notify-events.document-completed"
 msgstr ""
 
 #. TRANSLATORS: Document Config Changed
-#: locale/ipp-strings.c:2262
+#: locale/ipp-strings.c:2300
 msgid "notify-events.document-config-changed"
 msgstr ""
 
 #. TRANSLATORS: Document Created
-#: locale/ipp-strings.c:2264
+#: locale/ipp-strings.c:2302
 msgid "notify-events.document-created"
 msgstr ""
 
 #. TRANSLATORS: Document Fetchable
-#: locale/ipp-strings.c:2266
+#: locale/ipp-strings.c:2304
 msgid "notify-events.document-fetchable"
 msgstr ""
 
 #. TRANSLATORS: Document State Changed
-#: locale/ipp-strings.c:2268
+#: locale/ipp-strings.c:2306
 msgid "notify-events.document-state-changed"
 msgstr ""
 
 #. TRANSLATORS: Document Stopped
-#: locale/ipp-strings.c:2270
+#: locale/ipp-strings.c:2308
 msgid "notify-events.document-stopped"
 msgstr ""
 
 #. TRANSLATORS: Job Completed
-#: locale/ipp-strings.c:2272
+#: locale/ipp-strings.c:2310
 msgid "notify-events.job-completed"
 msgstr ""
 
 #. TRANSLATORS: Job Config Changed
-#: locale/ipp-strings.c:2274
+#: locale/ipp-strings.c:2312
 msgid "notify-events.job-config-changed"
 msgstr ""
 
 #. TRANSLATORS: Job Created
-#: locale/ipp-strings.c:2276
+#: locale/ipp-strings.c:2314
 msgid "notify-events.job-created"
 msgstr ""
 
 #. TRANSLATORS: Job Fetchable
-#: locale/ipp-strings.c:2278
+#: locale/ipp-strings.c:2316
 msgid "notify-events.job-fetchable"
 msgstr ""
 
 #. TRANSLATORS: Job Progress
-#: locale/ipp-strings.c:2280
+#: locale/ipp-strings.c:2318
 msgid "notify-events.job-progress"
 msgstr ""
 
 #. TRANSLATORS: Job State Changed
-#: locale/ipp-strings.c:2282
+#: locale/ipp-strings.c:2320
 msgid "notify-events.job-state-changed"
 msgstr ""
 
 #. TRANSLATORS: Job Stopped
-#: locale/ipp-strings.c:2284
+#: locale/ipp-strings.c:2322
 msgid "notify-events.job-stopped"
 msgstr ""
 
 #. TRANSLATORS: None
-#: locale/ipp-strings.c:2286
+#: locale/ipp-strings.c:2324
 msgid "notify-events.none"
 msgstr ""
 
 #. TRANSLATORS: Printer Config Changed
-#: locale/ipp-strings.c:2288
+#: locale/ipp-strings.c:2326
 msgid "notify-events.printer-config-changed"
 msgstr ""
 
 #. TRANSLATORS: Printer Finishings Changed
-#: locale/ipp-strings.c:2290
+#: locale/ipp-strings.c:2328
 msgid "notify-events.printer-finishings-changed"
 msgstr ""
 
 #. TRANSLATORS: Printer Media Changed
-#: locale/ipp-strings.c:2292
+#: locale/ipp-strings.c:2330
 msgid "notify-events.printer-media-changed"
 msgstr ""
 
 #. TRANSLATORS: Printer Queue Order Changed
-#: locale/ipp-strings.c:2294
+#: locale/ipp-strings.c:2332
 msgid "notify-events.printer-queue-order-changed"
 msgstr ""
 
 #. TRANSLATORS: Printer Restarted
-#: locale/ipp-strings.c:2296
+#: locale/ipp-strings.c:2334
 msgid "notify-events.printer-restarted"
 msgstr ""
 
 #. TRANSLATORS: Printer Shutdown
-#: locale/ipp-strings.c:2298
+#: locale/ipp-strings.c:2336
 msgid "notify-events.printer-shutdown"
 msgstr ""
 
 #. TRANSLATORS: Printer State Changed
-#: locale/ipp-strings.c:2300
+#: locale/ipp-strings.c:2338
 msgid "notify-events.printer-state-changed"
 msgstr ""
 
 #. TRANSLATORS: Printer Stopped
-#: locale/ipp-strings.c:2302
+#: locale/ipp-strings.c:2340
 msgid "notify-events.printer-stopped"
 msgstr ""
 
 #. TRANSLATORS: Notify Get Interval
-#: locale/ipp-strings.c:2304
+#: locale/ipp-strings.c:2342
 msgid "notify-get-interval"
 msgstr ""
 
 #. TRANSLATORS: Notify Lease Duration
-#: locale/ipp-strings.c:2306
+#: locale/ipp-strings.c:2344
 msgid "notify-lease-duration"
 msgstr ""
 
 #. TRANSLATORS: Notify Natural Language
-#: locale/ipp-strings.c:2308
+#: locale/ipp-strings.c:2346
 msgid "notify-natural-language"
 msgstr ""
 
 #. TRANSLATORS: Notify Pull Method
-#: locale/ipp-strings.c:2310
+#: locale/ipp-strings.c:2348
 msgid "notify-pull-method"
 msgstr ""
 
 #. TRANSLATORS: Notify Recipient
-#: locale/ipp-strings.c:2312
+#: locale/ipp-strings.c:2350
 msgid "notify-recipient-uri"
 msgstr ""
 
@@ -13063,397 +13182,397 @@
 msgstr ""
 
 #. TRANSLATORS: Notify Sequence Numbers
-#: locale/ipp-strings.c:2314
+#: locale/ipp-strings.c:2352
 msgid "notify-sequence-numbers"
 msgstr ""
 
 #. TRANSLATORS: Notify Subscription Ids
-#: locale/ipp-strings.c:2316
+#: locale/ipp-strings.c:2354
 msgid "notify-subscription-ids"
 msgstr ""
 
 #. TRANSLATORS: Notify Time Interval
-#: locale/ipp-strings.c:2318
+#: locale/ipp-strings.c:2356
 msgid "notify-time-interval"
 msgstr ""
 
 #. TRANSLATORS: Notify User Data
-#: locale/ipp-strings.c:2320
+#: locale/ipp-strings.c:2358
 msgid "notify-user-data"
 msgstr ""
 
 #. TRANSLATORS: Notify Wait
-#: locale/ipp-strings.c:2322
+#: locale/ipp-strings.c:2360
 msgid "notify-wait"
 msgstr ""
 
 #. TRANSLATORS: Number Of Retries
-#: locale/ipp-strings.c:2324
+#: locale/ipp-strings.c:2362
 msgid "number-of-retries"
 msgstr ""
 
 #. TRANSLATORS: Number-Up
-#: locale/ipp-strings.c:2326
+#: locale/ipp-strings.c:2364
 msgid "number-up"
 msgstr ""
 
 #. TRANSLATORS: Object Offset
-#: locale/ipp-strings.c:2328
+#: locale/ipp-strings.c:2366
 msgid "object-offset"
 msgstr ""
 
 #. TRANSLATORS: Object Size
-#: locale/ipp-strings.c:2330
+#: locale/ipp-strings.c:2368
 msgid "object-size"
 msgstr ""
 
 #. TRANSLATORS: Organization Name
-#: locale/ipp-strings.c:2332
+#: locale/ipp-strings.c:2370
 msgid "organization-name"
 msgstr ""
 
 #. TRANSLATORS: Orientation
-#: locale/ipp-strings.c:2334
+#: locale/ipp-strings.c:2372
 msgid "orientation-requested"
 msgstr ""
 
 #. TRANSLATORS: Portrait
-#: locale/ipp-strings.c:2336
+#: locale/ipp-strings.c:2374
 msgid "orientation-requested.3"
 msgstr ""
 
 #. TRANSLATORS: Landscape
-#: locale/ipp-strings.c:2338
+#: locale/ipp-strings.c:2376
 msgid "orientation-requested.4"
 msgstr ""
 
 #. TRANSLATORS: Reverse Landscape
-#: locale/ipp-strings.c:2340
+#: locale/ipp-strings.c:2378
 msgid "orientation-requested.5"
 msgstr ""
 
 #. TRANSLATORS: Reverse Portrait
-#: locale/ipp-strings.c:2342
+#: locale/ipp-strings.c:2380
 msgid "orientation-requested.6"
 msgstr ""
 
 #. TRANSLATORS: None
-#: locale/ipp-strings.c:2344
+#: locale/ipp-strings.c:2382
 msgid "orientation-requested.7"
 msgstr ""
 
 #. TRANSLATORS: Scanned Image Options
-#: locale/ipp-strings.c:2346
+#: locale/ipp-strings.c:2384
 msgid "output-attributes"
 msgstr ""
 
 #. TRANSLATORS: Output Tray
-#: locale/ipp-strings.c:2348
+#: locale/ipp-strings.c:2386
 msgid "output-bin"
 msgstr ""
 
 #. TRANSLATORS: Automatic
-#: locale/ipp-strings.c:2350
+#: locale/ipp-strings.c:2388
 msgid "output-bin.auto"
 msgstr ""
 
 #. TRANSLATORS: Bottom
-#: locale/ipp-strings.c:2352
+#: locale/ipp-strings.c:2390
 msgid "output-bin.bottom"
 msgstr ""
 
 #. TRANSLATORS: Center
-#: locale/ipp-strings.c:2354
+#: locale/ipp-strings.c:2392
 msgid "output-bin.center"
 msgstr ""
 
 #. TRANSLATORS: Face Down
-#: locale/ipp-strings.c:2356
+#: locale/ipp-strings.c:2394
 msgid "output-bin.face-down"
 msgstr ""
 
 #. TRANSLATORS: Face Up
-#: locale/ipp-strings.c:2358
+#: locale/ipp-strings.c:2396
 msgid "output-bin.face-up"
 msgstr ""
 
 #. TRANSLATORS: Large Capacity
-#: locale/ipp-strings.c:2360
+#: locale/ipp-strings.c:2398
 msgid "output-bin.large-capacity"
 msgstr ""
 
 #. TRANSLATORS: Left
-#: locale/ipp-strings.c:2362
+#: locale/ipp-strings.c:2400
 msgid "output-bin.left"
 msgstr ""
 
 #. TRANSLATORS: Mailbox 1
-#: locale/ipp-strings.c:2364
+#: locale/ipp-strings.c:2402
 msgid "output-bin.mailbox-1"
 msgstr ""
 
 #. TRANSLATORS: Mailbox 10
-#: locale/ipp-strings.c:2366
+#: locale/ipp-strings.c:2404
 msgid "output-bin.mailbox-10"
 msgstr ""
 
 #. TRANSLATORS: Mailbox 2
-#: locale/ipp-strings.c:2368
+#: locale/ipp-strings.c:2406
 msgid "output-bin.mailbox-2"
 msgstr ""
 
 #. TRANSLATORS: Mailbox 3
-#: locale/ipp-strings.c:2370
+#: locale/ipp-strings.c:2408
 msgid "output-bin.mailbox-3"
 msgstr ""
 
 #. TRANSLATORS: Mailbox 4
-#: locale/ipp-strings.c:2372
+#: locale/ipp-strings.c:2410
 msgid "output-bin.mailbox-4"
 msgstr ""
 
 #. TRANSLATORS: Mailbox 5
-#: locale/ipp-strings.c:2374
+#: locale/ipp-strings.c:2412
 msgid "output-bin.mailbox-5"
 msgstr ""
 
 #. TRANSLATORS: Mailbox 6
-#: locale/ipp-strings.c:2376
+#: locale/ipp-strings.c:2414
 msgid "output-bin.mailbox-6"
 msgstr ""
 
 #. TRANSLATORS: Mailbox 7
-#: locale/ipp-strings.c:2378
+#: locale/ipp-strings.c:2416
 msgid "output-bin.mailbox-7"
 msgstr ""
 
 #. TRANSLATORS: Mailbox 8
-#: locale/ipp-strings.c:2380
+#: locale/ipp-strings.c:2418
 msgid "output-bin.mailbox-8"
 msgstr ""
 
 #. TRANSLATORS: Mailbox 9
-#: locale/ipp-strings.c:2382
+#: locale/ipp-strings.c:2420
 msgid "output-bin.mailbox-9"
 msgstr ""
 
 #. TRANSLATORS: Middle
-#: locale/ipp-strings.c:2384
+#: locale/ipp-strings.c:2422
 msgid "output-bin.middle"
 msgstr ""
 
 #. TRANSLATORS: My Mailbox
-#: locale/ipp-strings.c:2386
+#: locale/ipp-strings.c:2424
 msgid "output-bin.my-mailbox"
 msgstr ""
 
 #. TRANSLATORS: Rear
-#: locale/ipp-strings.c:2388
+#: locale/ipp-strings.c:2426
 msgid "output-bin.rear"
 msgstr ""
 
 #. TRANSLATORS: Right
-#: locale/ipp-strings.c:2390
+#: locale/ipp-strings.c:2428
 msgid "output-bin.right"
 msgstr ""
 
 #. TRANSLATORS: Side
-#: locale/ipp-strings.c:2392
+#: locale/ipp-strings.c:2430
 msgid "output-bin.side"
 msgstr ""
 
 #. TRANSLATORS: Stacker 1
-#: locale/ipp-strings.c:2394
+#: locale/ipp-strings.c:2432
 msgid "output-bin.stacker-1"
 msgstr ""
 
 #. TRANSLATORS: Stacker 10
-#: locale/ipp-strings.c:2396
+#: locale/ipp-strings.c:2434
 msgid "output-bin.stacker-10"
 msgstr ""
 
 #. TRANSLATORS: Stacker 2
-#: locale/ipp-strings.c:2398
+#: locale/ipp-strings.c:2436
 msgid "output-bin.stacker-2"
 msgstr ""
 
 #. TRANSLATORS: Stacker 3
-#: locale/ipp-strings.c:2400
+#: locale/ipp-strings.c:2438
 msgid "output-bin.stacker-3"
 msgstr ""
 
 #. TRANSLATORS: Stacker 4
-#: locale/ipp-strings.c:2402
+#: locale/ipp-strings.c:2440
 msgid "output-bin.stacker-4"
 msgstr ""
 
 #. TRANSLATORS: Stacker 5
-#: locale/ipp-strings.c:2404
+#: locale/ipp-strings.c:2442
 msgid "output-bin.stacker-5"
 msgstr ""
 
 #. TRANSLATORS: Stacker 6
-#: locale/ipp-strings.c:2406
+#: locale/ipp-strings.c:2444
 msgid "output-bin.stacker-6"
 msgstr ""
 
 #. TRANSLATORS: Stacker 7
-#: locale/ipp-strings.c:2408
+#: locale/ipp-strings.c:2446
 msgid "output-bin.stacker-7"
 msgstr ""
 
 #. TRANSLATORS: Stacker 8
-#: locale/ipp-strings.c:2410
+#: locale/ipp-strings.c:2448
 msgid "output-bin.stacker-8"
 msgstr ""
 
 #. TRANSLATORS: Stacker 9
-#: locale/ipp-strings.c:2412
+#: locale/ipp-strings.c:2450
 msgid "output-bin.stacker-9"
 msgstr ""
 
 #. TRANSLATORS: Top
-#: locale/ipp-strings.c:2414
+#: locale/ipp-strings.c:2452
 msgid "output-bin.top"
 msgstr ""
 
 #. TRANSLATORS: Tray 1
-#: locale/ipp-strings.c:2416
+#: locale/ipp-strings.c:2454
 msgid "output-bin.tray-1"
 msgstr ""
 
 #. TRANSLATORS: Tray 10
-#: locale/ipp-strings.c:2418
+#: locale/ipp-strings.c:2456
 msgid "output-bin.tray-10"
 msgstr ""
 
 #. TRANSLATORS: Tray 2
-#: locale/ipp-strings.c:2420
+#: locale/ipp-strings.c:2458
 msgid "output-bin.tray-2"
 msgstr ""
 
 #. TRANSLATORS: Tray 3
-#: locale/ipp-strings.c:2422
+#: locale/ipp-strings.c:2460
 msgid "output-bin.tray-3"
 msgstr ""
 
 #. TRANSLATORS: Tray 4
-#: locale/ipp-strings.c:2424
+#: locale/ipp-strings.c:2462
 msgid "output-bin.tray-4"
 msgstr ""
 
 #. TRANSLATORS: Tray 5
-#: locale/ipp-strings.c:2426
+#: locale/ipp-strings.c:2464
 msgid "output-bin.tray-5"
 msgstr ""
 
 #. TRANSLATORS: Tray 6
-#: locale/ipp-strings.c:2428
+#: locale/ipp-strings.c:2466
 msgid "output-bin.tray-6"
 msgstr ""
 
 #. TRANSLATORS: Tray 7
-#: locale/ipp-strings.c:2430
+#: locale/ipp-strings.c:2468
 msgid "output-bin.tray-7"
 msgstr ""
 
 #. TRANSLATORS: Tray 8
-#: locale/ipp-strings.c:2432
+#: locale/ipp-strings.c:2470
 msgid "output-bin.tray-8"
 msgstr ""
 
 #. TRANSLATORS: Tray 9
-#: locale/ipp-strings.c:2434
+#: locale/ipp-strings.c:2472
 msgid "output-bin.tray-9"
 msgstr ""
 
 #. TRANSLATORS: Scanned Image Quality
-#: locale/ipp-strings.c:2436
+#: locale/ipp-strings.c:2474
 msgid "output-compression-quality-factor"
 msgstr ""
 
 #. TRANSLATORS: Page Delivery
-#: locale/ipp-strings.c:2438
+#: locale/ipp-strings.c:2476
 msgid "page-delivery"
 msgstr ""
 
 #. TRANSLATORS: Reverse Order Face-down
-#: locale/ipp-strings.c:2440
+#: locale/ipp-strings.c:2478
 msgid "page-delivery.reverse-order-face-down"
 msgstr ""
 
 #. TRANSLATORS: Reverse Order Face-up
-#: locale/ipp-strings.c:2442
+#: locale/ipp-strings.c:2480
 msgid "page-delivery.reverse-order-face-up"
 msgstr ""
 
 #. TRANSLATORS: Same Order Face-down
-#: locale/ipp-strings.c:2444
+#: locale/ipp-strings.c:2482
 msgid "page-delivery.same-order-face-down"
 msgstr ""
 
 #. TRANSLATORS: Same Order Face-up
-#: locale/ipp-strings.c:2446
+#: locale/ipp-strings.c:2484
 msgid "page-delivery.same-order-face-up"
 msgstr ""
 
 #. TRANSLATORS: System Specified
-#: locale/ipp-strings.c:2448
+#: locale/ipp-strings.c:2486
 msgid "page-delivery.system-specified"
 msgstr ""
 
 #. TRANSLATORS: Page Order Received
-#: locale/ipp-strings.c:2450
+#: locale/ipp-strings.c:2488
 msgid "page-order-received"
 msgstr ""
 
 #. TRANSLATORS: 1 To N
-#: locale/ipp-strings.c:2452
+#: locale/ipp-strings.c:2490
 msgid "page-order-received.1-to-n-order"
 msgstr ""
 
 #. TRANSLATORS: N To 1
-#: locale/ipp-strings.c:2454
+#: locale/ipp-strings.c:2492
 msgid "page-order-received.n-to-1-order"
 msgstr ""
 
 #. TRANSLATORS: Page Ranges
-#: locale/ipp-strings.c:2456
+#: locale/ipp-strings.c:2494
 msgid "page-ranges"
 msgstr ""
 
 #. TRANSLATORS: Pages
-#: locale/ipp-strings.c:2458
+#: locale/ipp-strings.c:2496
 msgid "pages"
 msgstr ""
 
 #. TRANSLATORS: Pages Per Subset
-#: locale/ipp-strings.c:2460
+#: locale/ipp-strings.c:2498
 msgid "pages-per-subset"
 msgstr ""
 
 #. TRANSLATORS: Pclm Raster Back Side
-#: locale/ipp-strings.c:2462
+#: locale/ipp-strings.c:2500
 msgid "pclm-raster-back-side"
 msgstr ""
 
 #. TRANSLATORS: Flipped
-#: locale/ipp-strings.c:2464
+#: locale/ipp-strings.c:2502
 msgid "pclm-raster-back-side.flipped"
 msgstr ""
 
 #. TRANSLATORS: Normal
-#: locale/ipp-strings.c:2466
+#: locale/ipp-strings.c:2504
 msgid "pclm-raster-back-side.normal"
 msgstr ""
 
 #. TRANSLATORS: Rotated
-#: locale/ipp-strings.c:2468
+#: locale/ipp-strings.c:2506
 msgid "pclm-raster-back-side.rotated"
 msgstr ""
 
 #. TRANSLATORS: Pclm Source Resolution
-#: locale/ipp-strings.c:2470
+#: locale/ipp-strings.c:2508
 msgid "pclm-source-resolution"
 msgstr ""
 
@@ -13462,27 +13581,27 @@
 msgstr ""
 
 #. TRANSLATORS: Platform Shape
-#: locale/ipp-strings.c:2472
+#: locale/ipp-strings.c:2510
 msgid "platform-shape"
 msgstr ""
 
 #. TRANSLATORS: Round
-#: locale/ipp-strings.c:2474
+#: locale/ipp-strings.c:2512
 msgid "platform-shape.ellipse"
 msgstr ""
 
 #. TRANSLATORS: Rectangle
-#: locale/ipp-strings.c:2476
+#: locale/ipp-strings.c:2514
 msgid "platform-shape.rectangle"
 msgstr ""
 
 #. TRANSLATORS: Platform Temperature
-#: locale/ipp-strings.c:2478
+#: locale/ipp-strings.c:2516
 msgid "platform-temperature"
 msgstr ""
 
 #. TRANSLATORS: Post-dial String
-#: locale/ipp-strings.c:2480
+#: locale/ipp-strings.c:2518
 msgid "post-dial-string"
 msgstr ""
 
@@ -13960,297 +14079,297 @@
 msgstr ""
 
 #. TRANSLATORS: Pre-dial String
-#: locale/ipp-strings.c:2482
+#: locale/ipp-strings.c:2520
 msgid "pre-dial-string"
 msgstr ""
 
 #. TRANSLATORS: Number-Up Layout
-#: locale/ipp-strings.c:2484
+#: locale/ipp-strings.c:2522
 msgid "presentation-direction-number-up"
 msgstr ""
 
 #. TRANSLATORS: Top-bottom, Right-left
-#: locale/ipp-strings.c:2486
+#: locale/ipp-strings.c:2524
 msgid "presentation-direction-number-up.tobottom-toleft"
 msgstr ""
 
 #. TRANSLATORS: Top-bottom, Left-right
-#: locale/ipp-strings.c:2488
+#: locale/ipp-strings.c:2526
 msgid "presentation-direction-number-up.tobottom-toright"
 msgstr ""
 
 #. TRANSLATORS: Right-left, Top-bottom
-#: locale/ipp-strings.c:2490
+#: locale/ipp-strings.c:2528
 msgid "presentation-direction-number-up.toleft-tobottom"
 msgstr ""
 
 #. TRANSLATORS: Right-left, Bottom-top
-#: locale/ipp-strings.c:2492
+#: locale/ipp-strings.c:2530
 msgid "presentation-direction-number-up.toleft-totop"
 msgstr ""
 
 #. TRANSLATORS: Left-right, Top-bottom
-#: locale/ipp-strings.c:2494
+#: locale/ipp-strings.c:2532
 msgid "presentation-direction-number-up.toright-tobottom"
 msgstr ""
 
 #. TRANSLATORS: Left-right, Bottom-top
-#: locale/ipp-strings.c:2496
+#: locale/ipp-strings.c:2534
 msgid "presentation-direction-number-up.toright-totop"
 msgstr ""
 
 #. TRANSLATORS: Bottom-top, Right-left
-#: locale/ipp-strings.c:2498
+#: locale/ipp-strings.c:2536
 msgid "presentation-direction-number-up.totop-toleft"
 msgstr ""
 
 #. TRANSLATORS: Bottom-top, Left-right
-#: locale/ipp-strings.c:2500
+#: locale/ipp-strings.c:2538
 msgid "presentation-direction-number-up.totop-toright"
 msgstr ""
 
 #. TRANSLATORS: Print Accuracy
-#: locale/ipp-strings.c:2502
+#: locale/ipp-strings.c:2540
 msgid "print-accuracy"
 msgstr ""
 
 #. TRANSLATORS: Print Base
-#: locale/ipp-strings.c:2504
+#: locale/ipp-strings.c:2542
 msgid "print-base"
 msgstr ""
 
 #. TRANSLATORS: Print Base Actual
-#: locale/ipp-strings.c:2506
+#: locale/ipp-strings.c:2544
 msgid "print-base-actual"
 msgstr ""
 
 #. TRANSLATORS: Brim
-#: locale/ipp-strings.c:2508
+#: locale/ipp-strings.c:2546
 msgid "print-base.brim"
 msgstr ""
 
 #. TRANSLATORS: None
-#: locale/ipp-strings.c:2510
+#: locale/ipp-strings.c:2548
 msgid "print-base.none"
 msgstr ""
 
 #. TRANSLATORS: Raft
-#: locale/ipp-strings.c:2512
+#: locale/ipp-strings.c:2550
 msgid "print-base.raft"
 msgstr ""
 
 #. TRANSLATORS: Skirt
-#: locale/ipp-strings.c:2514
+#: locale/ipp-strings.c:2552
 msgid "print-base.skirt"
 msgstr ""
 
 #. TRANSLATORS: Standard
-#: locale/ipp-strings.c:2516
+#: locale/ipp-strings.c:2554
 msgid "print-base.standard"
 msgstr ""
 
 #. TRANSLATORS: Print Color Mode
-#: locale/ipp-strings.c:2518
+#: locale/ipp-strings.c:2556
 msgid "print-color-mode"
 msgstr ""
 
 #. TRANSLATORS: Automatic
-#: locale/ipp-strings.c:2520
+#: locale/ipp-strings.c:2558
 msgid "print-color-mode.auto"
 msgstr ""
 
 #. TRANSLATORS: Auto Monochrome
-#: locale/ipp-strings.c:2522
+#: locale/ipp-strings.c:2560
 msgid "print-color-mode.auto-monochrome"
 msgstr ""
 
 #. TRANSLATORS: Text
-#: locale/ipp-strings.c:2524
+#: locale/ipp-strings.c:2562
 msgid "print-color-mode.bi-level"
 msgstr ""
 
 #. TRANSLATORS: Color
-#: locale/ipp-strings.c:2526
+#: locale/ipp-strings.c:2564
 msgid "print-color-mode.color"
 msgstr ""
 
 #. TRANSLATORS: Highlight
-#: locale/ipp-strings.c:2528
+#: locale/ipp-strings.c:2566
 msgid "print-color-mode.highlight"
 msgstr ""
 
 #. TRANSLATORS: Monochrome
-#: locale/ipp-strings.c:2530
+#: locale/ipp-strings.c:2568
 msgid "print-color-mode.monochrome"
 msgstr ""
 
 #. TRANSLATORS: Process Text
-#: locale/ipp-strings.c:2532
+#: locale/ipp-strings.c:2570
 msgid "print-color-mode.process-bi-level"
 msgstr ""
 
 #. TRANSLATORS: Process Monochrome
-#: locale/ipp-strings.c:2534
+#: locale/ipp-strings.c:2572
 msgid "print-color-mode.process-monochrome"
 msgstr ""
 
 #. TRANSLATORS: Print Optimization
-#: locale/ipp-strings.c:2536
+#: locale/ipp-strings.c:2574
 msgid "print-content-optimize"
 msgstr ""
 
 #. TRANSLATORS: Print Content Optimize Actual
-#: locale/ipp-strings.c:2538
+#: locale/ipp-strings.c:2576
 msgid "print-content-optimize-actual"
 msgstr ""
 
 #. TRANSLATORS: Automatic
-#: locale/ipp-strings.c:2540
+#: locale/ipp-strings.c:2578
 msgid "print-content-optimize.auto"
 msgstr ""
 
 #. TRANSLATORS: Graphics
-#: locale/ipp-strings.c:2542
+#: locale/ipp-strings.c:2580
 msgid "print-content-optimize.graphic"
 msgstr ""
 
 #. TRANSLATORS: Graphics
-#: locale/ipp-strings.c:2544
+#: locale/ipp-strings.c:2582
 msgid "print-content-optimize.graphics"
 msgstr ""
 
 #. TRANSLATORS: Photo
-#: locale/ipp-strings.c:2546
+#: locale/ipp-strings.c:2584
 msgid "print-content-optimize.photo"
 msgstr ""
 
 #. TRANSLATORS: Text
-#: locale/ipp-strings.c:2548
+#: locale/ipp-strings.c:2586
 msgid "print-content-optimize.text"
 msgstr ""
 
 #. TRANSLATORS: Text and Graphics
-#: locale/ipp-strings.c:2550
+#: locale/ipp-strings.c:2588
 msgid "print-content-optimize.text-and-graphic"
 msgstr ""
 
 #. TRANSLATORS: Text And Graphics
-#: locale/ipp-strings.c:2552
+#: locale/ipp-strings.c:2590
 msgid "print-content-optimize.text-and-graphics"
 msgstr ""
 
 #. TRANSLATORS: Print Objects
-#: locale/ipp-strings.c:2554
+#: locale/ipp-strings.c:2592
 msgid "print-objects"
 msgstr ""
 
 #. TRANSLATORS: Print Quality
-#: locale/ipp-strings.c:2556
+#: locale/ipp-strings.c:2594
 msgid "print-quality"
 msgstr ""
 
 #. TRANSLATORS: Draft
-#: locale/ipp-strings.c:2558
+#: locale/ipp-strings.c:2596
 msgid "print-quality.3"
 msgstr ""
 
 #. TRANSLATORS: Normal
-#: locale/ipp-strings.c:2560
+#: locale/ipp-strings.c:2598
 msgid "print-quality.4"
 msgstr ""
 
 #. TRANSLATORS: High
-#: locale/ipp-strings.c:2562
+#: locale/ipp-strings.c:2600
 msgid "print-quality.5"
 msgstr ""
 
 #. TRANSLATORS: Print Rendering Intent
-#: locale/ipp-strings.c:2564
+#: locale/ipp-strings.c:2602
 msgid "print-rendering-intent"
 msgstr ""
 
 #. TRANSLATORS: Absolute
-#: locale/ipp-strings.c:2566
+#: locale/ipp-strings.c:2604
 msgid "print-rendering-intent.absolute"
 msgstr ""
 
 #. TRANSLATORS: Automatic
-#: locale/ipp-strings.c:2568
+#: locale/ipp-strings.c:2606
 msgid "print-rendering-intent.auto"
 msgstr ""
 
 #. TRANSLATORS: Perceptual
-#: locale/ipp-strings.c:2570
+#: locale/ipp-strings.c:2608
 msgid "print-rendering-intent.perceptual"
 msgstr ""
 
 #. TRANSLATORS: Relative
-#: locale/ipp-strings.c:2572
+#: locale/ipp-strings.c:2610
 msgid "print-rendering-intent.relative"
 msgstr ""
 
 #. TRANSLATORS: Relative w/Black Point Compensation
-#: locale/ipp-strings.c:2574
+#: locale/ipp-strings.c:2612
 msgid "print-rendering-intent.relative-bpc"
 msgstr ""
 
 #. TRANSLATORS: Saturation
-#: locale/ipp-strings.c:2576
+#: locale/ipp-strings.c:2614
 msgid "print-rendering-intent.saturation"
 msgstr ""
 
 #. TRANSLATORS: Print Scaling
-#: locale/ipp-strings.c:2578
+#: locale/ipp-strings.c:2616
 msgid "print-scaling"
 msgstr ""
 
 #. TRANSLATORS: Automatic
-#: locale/ipp-strings.c:2580
+#: locale/ipp-strings.c:2618
 msgid "print-scaling.auto"
 msgstr ""
 
 #. TRANSLATORS: Auto-fit
-#: locale/ipp-strings.c:2582
+#: locale/ipp-strings.c:2620
 msgid "print-scaling.auto-fit"
 msgstr ""
 
 #. TRANSLATORS: Fill
-#: locale/ipp-strings.c:2584
+#: locale/ipp-strings.c:2622
 msgid "print-scaling.fill"
 msgstr ""
 
 #. TRANSLATORS: Fit
-#: locale/ipp-strings.c:2586
+#: locale/ipp-strings.c:2624
 msgid "print-scaling.fit"
 msgstr ""
 
 #. TRANSLATORS: None
-#: locale/ipp-strings.c:2588
+#: locale/ipp-strings.c:2626
 msgid "print-scaling.none"
 msgstr ""
 
 #. TRANSLATORS: Print Supports
-#: locale/ipp-strings.c:2590
+#: locale/ipp-strings.c:2628
 msgid "print-supports"
 msgstr ""
 
 #. TRANSLATORS: Print Supports Actual
-#: locale/ipp-strings.c:2592
+#: locale/ipp-strings.c:2630
 msgid "print-supports-actual"
 msgstr ""
 
 #. TRANSLATORS: With Specified Material
-#: locale/ipp-strings.c:2594
+#: locale/ipp-strings.c:2632
 msgid "print-supports.material"
 msgstr ""
 
 #. TRANSLATORS: None
-#: locale/ipp-strings.c:2596
+#: locale/ipp-strings.c:2634
 msgid "print-supports.none"
 msgstr ""
 
 #. TRANSLATORS: Standard
-#: locale/ipp-strings.c:2598
+#: locale/ipp-strings.c:2636
 msgid "print-supports.standard"
 msgstr ""
 
@@ -14290,4067 +14409,4067 @@
 msgstr ""
 
 #. TRANSLATORS: Printer Kind
-#: locale/ipp-strings.c:2600
+#: locale/ipp-strings.c:2638
 msgid "printer-kind"
 msgstr ""
 
 #. TRANSLATORS: Disc
-#: locale/ipp-strings.c:2602
+#: locale/ipp-strings.c:2640
 msgid "printer-kind.disc"
 msgstr ""
 
 #. TRANSLATORS: Document
-#: locale/ipp-strings.c:2604
+#: locale/ipp-strings.c:2642
 msgid "printer-kind.document"
 msgstr ""
 
 #. TRANSLATORS: Envelope
-#: locale/ipp-strings.c:2606
+#: locale/ipp-strings.c:2644
 msgid "printer-kind.envelope"
 msgstr ""
 
 #. TRANSLATORS: Label
-#: locale/ipp-strings.c:2608
+#: locale/ipp-strings.c:2646
 msgid "printer-kind.label"
 msgstr ""
 
 #. TRANSLATORS: Large Format
-#: locale/ipp-strings.c:2610
+#: locale/ipp-strings.c:2648
 msgid "printer-kind.large-format"
 msgstr ""
 
 #. TRANSLATORS: Photo
-#: locale/ipp-strings.c:2612
+#: locale/ipp-strings.c:2650
 msgid "printer-kind.photo"
 msgstr ""
 
 #. TRANSLATORS: Postcard
-#: locale/ipp-strings.c:2614
+#: locale/ipp-strings.c:2652
 msgid "printer-kind.postcard"
 msgstr ""
 
 #. TRANSLATORS: Receipt
-#: locale/ipp-strings.c:2616
+#: locale/ipp-strings.c:2654
 msgid "printer-kind.receipt"
 msgstr ""
 
 #. TRANSLATORS: Roll
-#: locale/ipp-strings.c:2618
+#: locale/ipp-strings.c:2656
 msgid "printer-kind.roll"
 msgstr ""
 
 #. TRANSLATORS: Message From Operator
-#: locale/ipp-strings.c:2620
+#: locale/ipp-strings.c:2658
 msgid "printer-message-from-operator"
 msgstr ""
 
 #. TRANSLATORS: Print Resolution
-#: locale/ipp-strings.c:2622
+#: locale/ipp-strings.c:2660
 msgid "printer-resolution"
 msgstr ""
 
 #. TRANSLATORS: Printer State
-#: locale/ipp-strings.c:2624
+#: locale/ipp-strings.c:2662
 msgid "printer-state"
 msgstr ""
 
 #. TRANSLATORS: Detailed Printer State
-#: locale/ipp-strings.c:2626
+#: locale/ipp-strings.c:2664
 msgid "printer-state-reasons"
 msgstr ""
 
 #. TRANSLATORS: Old Alerts Have Been Removed
-#: locale/ipp-strings.c:2628
+#: locale/ipp-strings.c:2666
 msgid "printer-state-reasons.alert-removal-of-binary-change-entry"
 msgstr ""
 
 #. TRANSLATORS: Bander Added
-#: locale/ipp-strings.c:2630
+#: locale/ipp-strings.c:2668
 msgid "printer-state-reasons.bander-added"
 msgstr ""
 
 #. TRANSLATORS: Bander Almost Empty
-#: locale/ipp-strings.c:2632
+#: locale/ipp-strings.c:2670
 msgid "printer-state-reasons.bander-almost-empty"
 msgstr ""
 
 #. TRANSLATORS: Bander Almost Full
-#: locale/ipp-strings.c:2634
+#: locale/ipp-strings.c:2672
 msgid "printer-state-reasons.bander-almost-full"
 msgstr ""
 
 #. TRANSLATORS: Bander At Limit
-#: locale/ipp-strings.c:2636
+#: locale/ipp-strings.c:2674
 msgid "printer-state-reasons.bander-at-limit"
 msgstr ""
 
 #. TRANSLATORS: Bander Closed
-#: locale/ipp-strings.c:2638
+#: locale/ipp-strings.c:2676
 msgid "printer-state-reasons.bander-closed"
 msgstr ""
 
 #. TRANSLATORS: Bander Configuration Change
-#: locale/ipp-strings.c:2640
+#: locale/ipp-strings.c:2678
 msgid "printer-state-reasons.bander-configuration-change"
 msgstr ""
 
 #. TRANSLATORS: Bander Cover Closed
-#: locale/ipp-strings.c:2642
+#: locale/ipp-strings.c:2680
 msgid "printer-state-reasons.bander-cover-closed"
 msgstr ""
 
 #. TRANSLATORS: Bander Cover Open
-#: locale/ipp-strings.c:2644
+#: locale/ipp-strings.c:2682
 msgid "printer-state-reasons.bander-cover-open"
 msgstr ""
 
 #. TRANSLATORS: Bander Empty
-#: locale/ipp-strings.c:2646
+#: locale/ipp-strings.c:2684
 msgid "printer-state-reasons.bander-empty"
 msgstr ""
 
 #. TRANSLATORS: Bander Full
-#: locale/ipp-strings.c:2648
+#: locale/ipp-strings.c:2686
 msgid "printer-state-reasons.bander-full"
 msgstr ""
 
 #. TRANSLATORS: Bander Interlock Closed
-#: locale/ipp-strings.c:2650
+#: locale/ipp-strings.c:2688
 msgid "printer-state-reasons.bander-interlock-closed"
 msgstr ""
 
 #. TRANSLATORS: Bander Interlock Open
-#: locale/ipp-strings.c:2652
+#: locale/ipp-strings.c:2690
 msgid "printer-state-reasons.bander-interlock-open"
 msgstr ""
 
 #. TRANSLATORS: Bander Jam
-#: locale/ipp-strings.c:2654
+#: locale/ipp-strings.c:2692
 msgid "printer-state-reasons.bander-jam"
 msgstr ""
 
 #. TRANSLATORS: Bander Life Almost Over
-#: locale/ipp-strings.c:2656
+#: locale/ipp-strings.c:2694
 msgid "printer-state-reasons.bander-life-almost-over"
 msgstr ""
 
 #. TRANSLATORS: Bander Life Over
-#: locale/ipp-strings.c:2658
+#: locale/ipp-strings.c:2696
 msgid "printer-state-reasons.bander-life-over"
 msgstr ""
 
 #. TRANSLATORS: Bander Memory Exhausted
-#: locale/ipp-strings.c:2660
+#: locale/ipp-strings.c:2698
 msgid "printer-state-reasons.bander-memory-exhausted"
 msgstr ""
 
 #. TRANSLATORS: Bander Missing
-#: locale/ipp-strings.c:2662
+#: locale/ipp-strings.c:2700
 msgid "printer-state-reasons.bander-missing"
 msgstr ""
 
 #. TRANSLATORS: Bander Motor Failure
-#: locale/ipp-strings.c:2664
+#: locale/ipp-strings.c:2702
 msgid "printer-state-reasons.bander-motor-failure"
 msgstr ""
 
 #. TRANSLATORS: Bander Near Limit
-#: locale/ipp-strings.c:2666
+#: locale/ipp-strings.c:2704
 msgid "printer-state-reasons.bander-near-limit"
 msgstr ""
 
 #. TRANSLATORS: Bander Offline
-#: locale/ipp-strings.c:2668
+#: locale/ipp-strings.c:2706
 msgid "printer-state-reasons.bander-offline"
 msgstr ""
 
 #. TRANSLATORS: Bander Opened
-#: locale/ipp-strings.c:2670
+#: locale/ipp-strings.c:2708
 msgid "printer-state-reasons.bander-opened"
 msgstr ""
 
 #. TRANSLATORS: Bander Over Temperature
-#: locale/ipp-strings.c:2672
+#: locale/ipp-strings.c:2710
 msgid "printer-state-reasons.bander-over-temperature"
 msgstr ""
 
 #. TRANSLATORS: Bander Power Saver
-#: locale/ipp-strings.c:2674
+#: locale/ipp-strings.c:2712
 msgid "printer-state-reasons.bander-power-saver"
 msgstr ""
 
 #. TRANSLATORS: Bander Recoverable Failure
-#: locale/ipp-strings.c:2676
+#: locale/ipp-strings.c:2714
 msgid "printer-state-reasons.bander-recoverable-failure"
 msgstr ""
 
 #. TRANSLATORS: Bander Recoverable Storage
-#: locale/ipp-strings.c:2678
+#: locale/ipp-strings.c:2716
 msgid "printer-state-reasons.bander-recoverable-storage"
 msgstr ""
 
 #. TRANSLATORS: Bander Removed
-#: locale/ipp-strings.c:2680
+#: locale/ipp-strings.c:2718
 msgid "printer-state-reasons.bander-removed"
 msgstr ""
 
 #. TRANSLATORS: Bander Resource Added
-#: locale/ipp-strings.c:2682
+#: locale/ipp-strings.c:2720
 msgid "printer-state-reasons.bander-resource-added"
 msgstr ""
 
 #. TRANSLATORS: Bander Resource Removed
-#: locale/ipp-strings.c:2684
+#: locale/ipp-strings.c:2722
 msgid "printer-state-reasons.bander-resource-removed"
 msgstr ""
 
 #. TRANSLATORS: Bander Thermistor Failure
-#: locale/ipp-strings.c:2686
+#: locale/ipp-strings.c:2724
 msgid "printer-state-reasons.bander-thermistor-failure"
 msgstr ""
 
 #. TRANSLATORS: Bander Timing Failure
-#: locale/ipp-strings.c:2688
+#: locale/ipp-strings.c:2726
 msgid "printer-state-reasons.bander-timing-failure"
 msgstr ""
 
 #. TRANSLATORS: Bander Turned Off
-#: locale/ipp-strings.c:2690
+#: locale/ipp-strings.c:2728
 msgid "printer-state-reasons.bander-turned-off"
 msgstr ""
 
 #. TRANSLATORS: Bander Turned On
-#: locale/ipp-strings.c:2692
+#: locale/ipp-strings.c:2730
 msgid "printer-state-reasons.bander-turned-on"
 msgstr ""
 
 #. TRANSLATORS: Bander Under Temperature
-#: locale/ipp-strings.c:2694
+#: locale/ipp-strings.c:2732
 msgid "printer-state-reasons.bander-under-temperature"
 msgstr ""
 
 #. TRANSLATORS: Bander Unrecoverable Failure
-#: locale/ipp-strings.c:2696
+#: locale/ipp-strings.c:2734
 msgid "printer-state-reasons.bander-unrecoverable-failure"
 msgstr ""
 
 #. TRANSLATORS: Bander Unrecoverable Storage Error
-#: locale/ipp-strings.c:2698
+#: locale/ipp-strings.c:2736
 msgid "printer-state-reasons.bander-unrecoverable-storage-error"
 msgstr ""
 
 #. TRANSLATORS: Bander Warming Up
-#: locale/ipp-strings.c:2700
+#: locale/ipp-strings.c:2738
 msgid "printer-state-reasons.bander-warming-up"
 msgstr ""
 
 #. TRANSLATORS: Binder Added
-#: locale/ipp-strings.c:2702
+#: locale/ipp-strings.c:2740
 msgid "printer-state-reasons.binder-added"
 msgstr ""
 
 #. TRANSLATORS: Binder Almost Empty
-#: locale/ipp-strings.c:2704
+#: locale/ipp-strings.c:2742
 msgid "printer-state-reasons.binder-almost-empty"
 msgstr ""
 
 #. TRANSLATORS: Binder Almost Full
-#: locale/ipp-strings.c:2706
+#: locale/ipp-strings.c:2744
 msgid "printer-state-reasons.binder-almost-full"
 msgstr ""
 
 #. TRANSLATORS: Binder At Limit
-#: locale/ipp-strings.c:2708
+#: locale/ipp-strings.c:2746
 msgid "printer-state-reasons.binder-at-limit"
 msgstr ""
 
 #. TRANSLATORS: Binder Closed
-#: locale/ipp-strings.c:2710
+#: locale/ipp-strings.c:2748
 msgid "printer-state-reasons.binder-closed"
 msgstr ""
 
 #. TRANSLATORS: Binder Configuration Change
-#: locale/ipp-strings.c:2712
+#: locale/ipp-strings.c:2750
 msgid "printer-state-reasons.binder-configuration-change"
 msgstr ""
 
 #. TRANSLATORS: Binder Cover Closed
-#: locale/ipp-strings.c:2714
+#: locale/ipp-strings.c:2752
 msgid "printer-state-reasons.binder-cover-closed"
 msgstr ""
 
 #. TRANSLATORS: Binder Cover Open
-#: locale/ipp-strings.c:2716
+#: locale/ipp-strings.c:2754
 msgid "printer-state-reasons.binder-cover-open"
 msgstr ""
 
 #. TRANSLATORS: Binder Empty
-#: locale/ipp-strings.c:2718
+#: locale/ipp-strings.c:2756
 msgid "printer-state-reasons.binder-empty"
 msgstr ""
 
 #. TRANSLATORS: Binder Full
-#: locale/ipp-strings.c:2720
+#: locale/ipp-strings.c:2758
 msgid "printer-state-reasons.binder-full"
 msgstr ""
 
 #. TRANSLATORS: Binder Interlock Closed
-#: locale/ipp-strings.c:2722
+#: locale/ipp-strings.c:2760
 msgid "printer-state-reasons.binder-interlock-closed"
 msgstr ""
 
 #. TRANSLATORS: Binder Interlock Open
-#: locale/ipp-strings.c:2724
+#: locale/ipp-strings.c:2762
 msgid "printer-state-reasons.binder-interlock-open"
 msgstr ""
 
 #. TRANSLATORS: Binder Jam
-#: locale/ipp-strings.c:2726
+#: locale/ipp-strings.c:2764
 msgid "printer-state-reasons.binder-jam"
 msgstr ""
 
 #. TRANSLATORS: Binder Life Almost Over
-#: locale/ipp-strings.c:2728
+#: locale/ipp-strings.c:2766
 msgid "printer-state-reasons.binder-life-almost-over"
 msgstr ""
 
 #. TRANSLATORS: Binder Life Over
-#: locale/ipp-strings.c:2730
+#: locale/ipp-strings.c:2768
 msgid "printer-state-reasons.binder-life-over"
 msgstr ""
 
 #. TRANSLATORS: Binder Memory Exhausted
-#: locale/ipp-strings.c:2732
+#: locale/ipp-strings.c:2770
 msgid "printer-state-reasons.binder-memory-exhausted"
 msgstr ""
 
 #. TRANSLATORS: Binder Missing
-#: locale/ipp-strings.c:2734
+#: locale/ipp-strings.c:2772
 msgid "printer-state-reasons.binder-missing"
 msgstr ""
 
 #. TRANSLATORS: Binder Motor Failure
-#: locale/ipp-strings.c:2736
+#: locale/ipp-strings.c:2774
 msgid "printer-state-reasons.binder-motor-failure"
 msgstr ""
 
 #. TRANSLATORS: Binder Near Limit
-#: locale/ipp-strings.c:2738
+#: locale/ipp-strings.c:2776
 msgid "printer-state-reasons.binder-near-limit"
 msgstr ""
 
 #. TRANSLATORS: Binder Offline
-#: locale/ipp-strings.c:2740
+#: locale/ipp-strings.c:2778
 msgid "printer-state-reasons.binder-offline"
 msgstr ""
 
 #. TRANSLATORS: Binder Opened
-#: locale/ipp-strings.c:2742
+#: locale/ipp-strings.c:2780
 msgid "printer-state-reasons.binder-opened"
 msgstr ""
 
 #. TRANSLATORS: Binder Over Temperature
-#: locale/ipp-strings.c:2744
+#: locale/ipp-strings.c:2782
 msgid "printer-state-reasons.binder-over-temperature"
 msgstr ""
 
 #. TRANSLATORS: Binder Power Saver
-#: locale/ipp-strings.c:2746
+#: locale/ipp-strings.c:2784
 msgid "printer-state-reasons.binder-power-saver"
 msgstr ""
 
 #. TRANSLATORS: Binder Recoverable Failure
-#: locale/ipp-strings.c:2748
+#: locale/ipp-strings.c:2786
 msgid "printer-state-reasons.binder-recoverable-failure"
 msgstr ""
 
 #. TRANSLATORS: Binder Recoverable Storage
-#: locale/ipp-strings.c:2750
+#: locale/ipp-strings.c:2788
 msgid "printer-state-reasons.binder-recoverable-storage"
 msgstr ""
 
 #. TRANSLATORS: Binder Removed
-#: locale/ipp-strings.c:2752
+#: locale/ipp-strings.c:2790
 msgid "printer-state-reasons.binder-removed"
 msgstr ""
 
 #. TRANSLATORS: Binder Resource Added
-#: locale/ipp-strings.c:2754
+#: locale/ipp-strings.c:2792
 msgid "printer-state-reasons.binder-resource-added"
 msgstr ""
 
 #. TRANSLATORS: Binder Resource Removed
-#: locale/ipp-strings.c:2756
+#: locale/ipp-strings.c:2794
 msgid "printer-state-reasons.binder-resource-removed"
 msgstr ""
 
 #. TRANSLATORS: Binder Thermistor Failure
-#: locale/ipp-strings.c:2758
+#: locale/ipp-strings.c:2796
 msgid "printer-state-reasons.binder-thermistor-failure"
 msgstr ""
 
 #. TRANSLATORS: Binder Timing Failure
-#: locale/ipp-strings.c:2760
+#: locale/ipp-strings.c:2798
 msgid "printer-state-reasons.binder-timing-failure"
 msgstr ""
 
 #. TRANSLATORS: Binder Turned Off
-#: locale/ipp-strings.c:2762
+#: locale/ipp-strings.c:2800
 msgid "printer-state-reasons.binder-turned-off"
 msgstr ""
 
 #. TRANSLATORS: Binder Turned On
-#: locale/ipp-strings.c:2764
+#: locale/ipp-strings.c:2802
 msgid "printer-state-reasons.binder-turned-on"
 msgstr ""
 
 #. TRANSLATORS: Binder Under Temperature
-#: locale/ipp-strings.c:2766
+#: locale/ipp-strings.c:2804
 msgid "printer-state-reasons.binder-under-temperature"
 msgstr ""
 
 #. TRANSLATORS: Binder Unrecoverable Failure
-#: locale/ipp-strings.c:2768
+#: locale/ipp-strings.c:2806
 msgid "printer-state-reasons.binder-unrecoverable-failure"
 msgstr ""
 
 #. TRANSLATORS: Binder Unrecoverable Storage Error
-#: locale/ipp-strings.c:2770
+#: locale/ipp-strings.c:2808
 msgid "printer-state-reasons.binder-unrecoverable-storage-error"
 msgstr ""
 
 #. TRANSLATORS: Binder Warming Up
-#: locale/ipp-strings.c:2772
+#: locale/ipp-strings.c:2810
 msgid "printer-state-reasons.binder-warming-up"
 msgstr ""
 
 #. TRANSLATORS: Camera Failure
-#: locale/ipp-strings.c:2774
+#: locale/ipp-strings.c:2812
 msgid "printer-state-reasons.camera-failure"
 msgstr ""
 
 #. TRANSLATORS: Chamber Cooling
-#: locale/ipp-strings.c:2776
+#: locale/ipp-strings.c:2814
 msgid "printer-state-reasons.chamber-cooling"
 msgstr ""
 
 #. TRANSLATORS: Chamber Failure
-#: locale/ipp-strings.c:2778
+#: locale/ipp-strings.c:2816
 msgid "printer-state-reasons.chamber-failure"
 msgstr ""
 
 #. TRANSLATORS: Chamber Heating
-#: locale/ipp-strings.c:2780
+#: locale/ipp-strings.c:2818
 msgid "printer-state-reasons.chamber-heating"
 msgstr ""
 
 #. TRANSLATORS: Chamber Temperature High
-#: locale/ipp-strings.c:2782
+#: locale/ipp-strings.c:2820
 msgid "printer-state-reasons.chamber-temperature-high"
 msgstr ""
 
 #. TRANSLATORS: Chamber Temperature Low
-#: locale/ipp-strings.c:2784
+#: locale/ipp-strings.c:2822
 msgid "printer-state-reasons.chamber-temperature-low"
 msgstr ""
 
 #. TRANSLATORS: Cleaner Life Almost Over
-#: locale/ipp-strings.c:2786
+#: locale/ipp-strings.c:2824
 msgid "printer-state-reasons.cleaner-life-almost-over"
 msgstr ""
 
 #. TRANSLATORS: Cleaner Life Over
-#: locale/ipp-strings.c:2788
+#: locale/ipp-strings.c:2826
 msgid "printer-state-reasons.cleaner-life-over"
 msgstr ""
 
 #. TRANSLATORS: Configuration Change
-#: locale/ipp-strings.c:2790
+#: locale/ipp-strings.c:2828
 msgid "printer-state-reasons.configuration-change"
 msgstr ""
 
 #. TRANSLATORS: Connecting To Device
-#: locale/ipp-strings.c:2792
+#: locale/ipp-strings.c:2830
 msgid "printer-state-reasons.connecting-to-device"
 msgstr ""
 
 #. TRANSLATORS: Cover Open
-#: locale/ipp-strings.c:2794
+#: locale/ipp-strings.c:2832
 msgid "printer-state-reasons.cover-open"
 msgstr ""
 
 #. TRANSLATORS: Deactivated
-#: locale/ipp-strings.c:2796
+#: locale/ipp-strings.c:2834
 msgid "printer-state-reasons.deactivated"
 msgstr ""
 
 #. TRANSLATORS: Developer Empty
-#: locale/ipp-strings.c:2798
+#: locale/ipp-strings.c:2836
 msgid "printer-state-reasons.developer-empty"
 msgstr ""
 
 #. TRANSLATORS: Developer Low
-#: locale/ipp-strings.c:2800
+#: locale/ipp-strings.c:2838
 msgid "printer-state-reasons.developer-low"
 msgstr ""
 
 #. TRANSLATORS: Die Cutter Added
-#: locale/ipp-strings.c:2802
+#: locale/ipp-strings.c:2840
 msgid "printer-state-reasons.die-cutter-added"
 msgstr ""
 
 #. TRANSLATORS: Die Cutter Almost Empty
-#: locale/ipp-strings.c:2804
+#: locale/ipp-strings.c:2842
 msgid "printer-state-reasons.die-cutter-almost-empty"
 msgstr ""
 
 #. TRANSLATORS: Die Cutter Almost Full
-#: locale/ipp-strings.c:2806
+#: locale/ipp-strings.c:2844
 msgid "printer-state-reasons.die-cutter-almost-full"
 msgstr ""
 
 #. TRANSLATORS: Die Cutter At Limit
-#: locale/ipp-strings.c:2808
+#: locale/ipp-strings.c:2846
 msgid "printer-state-reasons.die-cutter-at-limit"
 msgstr ""
 
 #. TRANSLATORS: Die Cutter Closed
-#: locale/ipp-strings.c:2810
+#: locale/ipp-strings.c:2848
 msgid "printer-state-reasons.die-cutter-closed"
 msgstr ""
 
 #. TRANSLATORS: Die Cutter Configuration Change
-#: locale/ipp-strings.c:2812
+#: locale/ipp-strings.c:2850
 msgid "printer-state-reasons.die-cutter-configuration-change"
 msgstr ""
 
 #. TRANSLATORS: Die Cutter Cover Closed
-#: locale/ipp-strings.c:2814
+#: locale/ipp-strings.c:2852
 msgid "printer-state-reasons.die-cutter-cover-closed"
 msgstr ""
 
 #. TRANSLATORS: Die Cutter Cover Open
-#: locale/ipp-strings.c:2816
+#: locale/ipp-strings.c:2854
 msgid "printer-state-reasons.die-cutter-cover-open"
 msgstr ""
 
 #. TRANSLATORS: Die Cutter Empty
-#: locale/ipp-strings.c:2818
+#: locale/ipp-strings.c:2856
 msgid "printer-state-reasons.die-cutter-empty"
 msgstr ""
 
 #. TRANSLATORS: Die Cutter Full
-#: locale/ipp-strings.c:2820
+#: locale/ipp-strings.c:2858
 msgid "printer-state-reasons.die-cutter-full"
 msgstr ""
 
 #. TRANSLATORS: Die Cutter Interlock Closed
-#: locale/ipp-strings.c:2822
+#: locale/ipp-strings.c:2860
 msgid "printer-state-reasons.die-cutter-interlock-closed"
 msgstr ""
 
 #. TRANSLATORS: Die Cutter Interlock Open
-#: locale/ipp-strings.c:2824
+#: locale/ipp-strings.c:2862
 msgid "printer-state-reasons.die-cutter-interlock-open"
 msgstr ""
 
 #. TRANSLATORS: Die Cutter Jam
-#: locale/ipp-strings.c:2826
+#: locale/ipp-strings.c:2864
 msgid "printer-state-reasons.die-cutter-jam"
 msgstr ""
 
 #. TRANSLATORS: Die Cutter Life Almost Over
-#: locale/ipp-strings.c:2828
+#: locale/ipp-strings.c:2866
 msgid "printer-state-reasons.die-cutter-life-almost-over"
 msgstr ""
 
 #. TRANSLATORS: Die Cutter Life Over
-#: locale/ipp-strings.c:2830
+#: locale/ipp-strings.c:2868
 msgid "printer-state-reasons.die-cutter-life-over"
 msgstr ""
 
 #. TRANSLATORS: Die Cutter Memory Exhausted
-#: locale/ipp-strings.c:2832
+#: locale/ipp-strings.c:2870
 msgid "printer-state-reasons.die-cutter-memory-exhausted"
 msgstr ""
 
 #. TRANSLATORS: Die Cutter Missing
-#: locale/ipp-strings.c:2834
+#: locale/ipp-strings.c:2872
 msgid "printer-state-reasons.die-cutter-missing"
 msgstr ""
 
 #. TRANSLATORS: Die Cutter Motor Failure
-#: locale/ipp-strings.c:2836
+#: locale/ipp-strings.c:2874
 msgid "printer-state-reasons.die-cutter-motor-failure"
 msgstr ""
 
 #. TRANSLATORS: Die Cutter Near Limit
-#: locale/ipp-strings.c:2838
+#: locale/ipp-strings.c:2876
 msgid "printer-state-reasons.die-cutter-near-limit"
 msgstr ""
 
 #. TRANSLATORS: Die Cutter Offline
-#: locale/ipp-strings.c:2840
+#: locale/ipp-strings.c:2878
 msgid "printer-state-reasons.die-cutter-offline"
 msgstr ""
 
 #. TRANSLATORS: Die Cutter Opened
-#: locale/ipp-strings.c:2842
+#: locale/ipp-strings.c:2880
 msgid "printer-state-reasons.die-cutter-opened"
 msgstr ""
 
 #. TRANSLATORS: Die Cutter Over Temperature
-#: locale/ipp-strings.c:2844
+#: locale/ipp-strings.c:2882
 msgid "printer-state-reasons.die-cutter-over-temperature"
 msgstr ""
 
 #. TRANSLATORS: Die Cutter Power Saver
-#: locale/ipp-strings.c:2846
+#: locale/ipp-strings.c:2884
 msgid "printer-state-reasons.die-cutter-power-saver"
 msgstr ""
 
 #. TRANSLATORS: Die Cutter Recoverable Failure
-#: locale/ipp-strings.c:2848
+#: locale/ipp-strings.c:2886
 msgid "printer-state-reasons.die-cutter-recoverable-failure"
 msgstr ""
 
 #. TRANSLATORS: Die Cutter Recoverable Storage
-#: locale/ipp-strings.c:2850
+#: locale/ipp-strings.c:2888
 msgid "printer-state-reasons.die-cutter-recoverable-storage"
 msgstr ""
 
 #. TRANSLATORS: Die Cutter Removed
-#: locale/ipp-strings.c:2852
+#: locale/ipp-strings.c:2890
 msgid "printer-state-reasons.die-cutter-removed"
 msgstr ""
 
 #. TRANSLATORS: Die Cutter Resource Added
-#: locale/ipp-strings.c:2854
+#: locale/ipp-strings.c:2892
 msgid "printer-state-reasons.die-cutter-resource-added"
 msgstr ""
 
 #. TRANSLATORS: Die Cutter Resource Removed
-#: locale/ipp-strings.c:2856
+#: locale/ipp-strings.c:2894
 msgid "printer-state-reasons.die-cutter-resource-removed"
 msgstr ""
 
 #. TRANSLATORS: Die Cutter Thermistor Failure
-#: locale/ipp-strings.c:2858
+#: locale/ipp-strings.c:2896
 msgid "printer-state-reasons.die-cutter-thermistor-failure"
 msgstr ""
 
 #. TRANSLATORS: Die Cutter Timing Failure
-#: locale/ipp-strings.c:2860
+#: locale/ipp-strings.c:2898
 msgid "printer-state-reasons.die-cutter-timing-failure"
 msgstr ""
 
 #. TRANSLATORS: Die Cutter Turned Off
-#: locale/ipp-strings.c:2862
+#: locale/ipp-strings.c:2900
 msgid "printer-state-reasons.die-cutter-turned-off"
 msgstr ""
 
 #. TRANSLATORS: Die Cutter Turned On
-#: locale/ipp-strings.c:2864
+#: locale/ipp-strings.c:2902
 msgid "printer-state-reasons.die-cutter-turned-on"
 msgstr ""
 
 #. TRANSLATORS: Die Cutter Under Temperature
-#: locale/ipp-strings.c:2866
+#: locale/ipp-strings.c:2904
 msgid "printer-state-reasons.die-cutter-under-temperature"
 msgstr ""
 
 #. TRANSLATORS: Die Cutter Unrecoverable Failure
-#: locale/ipp-strings.c:2868
+#: locale/ipp-strings.c:2906
 msgid "printer-state-reasons.die-cutter-unrecoverable-failure"
 msgstr ""
 
 #. TRANSLATORS: Die Cutter Unrecoverable Storage Error
-#: locale/ipp-strings.c:2870
+#: locale/ipp-strings.c:2908
 msgid "printer-state-reasons.die-cutter-unrecoverable-storage-error"
 msgstr ""
 
 #. TRANSLATORS: Die Cutter Warming Up
-#: locale/ipp-strings.c:2872
+#: locale/ipp-strings.c:2910
 msgid "printer-state-reasons.die-cutter-warming-up"
 msgstr ""
 
 #. TRANSLATORS: Door Open
-#: locale/ipp-strings.c:2874
+#: locale/ipp-strings.c:2912
 msgid "printer-state-reasons.door-open"
 msgstr ""
 
 #. TRANSLATORS: Extruder Cooling
-#: locale/ipp-strings.c:2876
+#: locale/ipp-strings.c:2914
 msgid "printer-state-reasons.extruder-cooling"
 msgstr ""
 
 #. TRANSLATORS: Extruder Failure
-#: locale/ipp-strings.c:2878
+#: locale/ipp-strings.c:2916
 msgid "printer-state-reasons.extruder-failure"
 msgstr ""
 
 #. TRANSLATORS: Extruder Heating
-#: locale/ipp-strings.c:2880
+#: locale/ipp-strings.c:2918
 msgid "printer-state-reasons.extruder-heating"
 msgstr ""
 
 #. TRANSLATORS: Extruder Jam
-#: locale/ipp-strings.c:2882
+#: locale/ipp-strings.c:2920
 msgid "printer-state-reasons.extruder-jam"
 msgstr ""
 
 #. TRANSLATORS: Extruder Temperature High
-#: locale/ipp-strings.c:2884
+#: locale/ipp-strings.c:2922
 msgid "printer-state-reasons.extruder-temperature-high"
 msgstr ""
 
 #. TRANSLATORS: Extruder Temperature Low
-#: locale/ipp-strings.c:2886
+#: locale/ipp-strings.c:2924
 msgid "printer-state-reasons.extruder-temperature-low"
 msgstr ""
 
 #. TRANSLATORS: Fan Failure
-#: locale/ipp-strings.c:2888
+#: locale/ipp-strings.c:2926
 msgid "printer-state-reasons.fan-failure"
 msgstr ""
 
 #. TRANSLATORS: Fax Modem Life Almost Over
-#: locale/ipp-strings.c:2890
+#: locale/ipp-strings.c:2928
 msgid "printer-state-reasons.fax-modem-life-almost-over"
 msgstr ""
 
 #. TRANSLATORS: Fax Modem Life Over
-#: locale/ipp-strings.c:2892
+#: locale/ipp-strings.c:2930
 msgid "printer-state-reasons.fax-modem-life-over"
 msgstr ""
 
 #. TRANSLATORS: Fax Modem Missing
-#: locale/ipp-strings.c:2894
+#: locale/ipp-strings.c:2932
 msgid "printer-state-reasons.fax-modem-missing"
 msgstr ""
 
 #. TRANSLATORS: Fax Modem Turned Off
-#: locale/ipp-strings.c:2896
+#: locale/ipp-strings.c:2934
 msgid "printer-state-reasons.fax-modem-turned-off"
 msgstr ""
 
 #. TRANSLATORS: Fax Modem Turned On
-#: locale/ipp-strings.c:2898
+#: locale/ipp-strings.c:2936
 msgid "printer-state-reasons.fax-modem-turned-on"
 msgstr ""
 
 #. TRANSLATORS: Folder Added
-#: locale/ipp-strings.c:2900
+#: locale/ipp-strings.c:2938
 msgid "printer-state-reasons.folder-added"
 msgstr ""
 
 #. TRANSLATORS: Folder Almost Empty
-#: locale/ipp-strings.c:2902
+#: locale/ipp-strings.c:2940
 msgid "printer-state-reasons.folder-almost-empty"
 msgstr ""
 
 #. TRANSLATORS: Folder Almost Full
-#: locale/ipp-strings.c:2904
+#: locale/ipp-strings.c:2942
 msgid "printer-state-reasons.folder-almost-full"
 msgstr ""
 
 #. TRANSLATORS: Folder At Limit
-#: locale/ipp-strings.c:2906
+#: locale/ipp-strings.c:2944
 msgid "printer-state-reasons.folder-at-limit"
 msgstr ""
 
 #. TRANSLATORS: Folder Closed
-#: locale/ipp-strings.c:2908
+#: locale/ipp-strings.c:2946
 msgid "printer-state-reasons.folder-closed"
 msgstr ""
 
 #. TRANSLATORS: Folder Configuration Change
-#: locale/ipp-strings.c:2910
+#: locale/ipp-strings.c:2948
 msgid "printer-state-reasons.folder-configuration-change"
 msgstr ""
 
 #. TRANSLATORS: Folder Cover Closed
-#: locale/ipp-strings.c:2912
+#: locale/ipp-strings.c:2950
 msgid "printer-state-reasons.folder-cover-closed"
 msgstr ""
 
 #. TRANSLATORS: Folder Cover Open
-#: locale/ipp-strings.c:2914
+#: locale/ipp-strings.c:2952
 msgid "printer-state-reasons.folder-cover-open"
 msgstr ""
 
 #. TRANSLATORS: Folder Empty
-#: locale/ipp-strings.c:2916
+#: locale/ipp-strings.c:2954
 msgid "printer-state-reasons.folder-empty"
 msgstr ""
 
 #. TRANSLATORS: Folder Full
-#: locale/ipp-strings.c:2918
+#: locale/ipp-strings.c:2956
 msgid "printer-state-reasons.folder-full"
 msgstr ""
 
 #. TRANSLATORS: Folder Interlock Closed
-#: locale/ipp-strings.c:2920
+#: locale/ipp-strings.c:2958
 msgid "printer-state-reasons.folder-interlock-closed"
 msgstr ""
 
 #. TRANSLATORS: Folder Interlock Open
-#: locale/ipp-strings.c:2922
+#: locale/ipp-strings.c:2960
 msgid "printer-state-reasons.folder-interlock-open"
 msgstr ""
 
 #. TRANSLATORS: Folder Jam
-#: locale/ipp-strings.c:2924
+#: locale/ipp-strings.c:2962
 msgid "printer-state-reasons.folder-jam"
 msgstr ""
 
 #. TRANSLATORS: Folder Life Almost Over
-#: locale/ipp-strings.c:2926
+#: locale/ipp-strings.c:2964
 msgid "printer-state-reasons.folder-life-almost-over"
 msgstr ""
 
 #. TRANSLATORS: Folder Life Over
-#: locale/ipp-strings.c:2928
+#: locale/ipp-strings.c:2966
 msgid "printer-state-reasons.folder-life-over"
 msgstr ""
 
 #. TRANSLATORS: Folder Memory Exhausted
-#: locale/ipp-strings.c:2930
+#: locale/ipp-strings.c:2968
 msgid "printer-state-reasons.folder-memory-exhausted"
 msgstr ""
 
 #. TRANSLATORS: Folder Missing
-#: locale/ipp-strings.c:2932
+#: locale/ipp-strings.c:2970
 msgid "printer-state-reasons.folder-missing"
 msgstr ""
 
 #. TRANSLATORS: Folder Motor Failure
-#: locale/ipp-strings.c:2934
+#: locale/ipp-strings.c:2972
 msgid "printer-state-reasons.folder-motor-failure"
 msgstr ""
 
 #. TRANSLATORS: Folder Near Limit
-#: locale/ipp-strings.c:2936
+#: locale/ipp-strings.c:2974
 msgid "printer-state-reasons.folder-near-limit"
 msgstr ""
 
 #. TRANSLATORS: Folder Offline
-#: locale/ipp-strings.c:2938
+#: locale/ipp-strings.c:2976
 msgid "printer-state-reasons.folder-offline"
 msgstr ""
 
 #. TRANSLATORS: Folder Opened
-#: locale/ipp-strings.c:2940
+#: locale/ipp-strings.c:2978
 msgid "printer-state-reasons.folder-opened"
 msgstr ""
 
 #. TRANSLATORS: Folder Over Temperature
-#: locale/ipp-strings.c:2942
+#: locale/ipp-strings.c:2980
 msgid "printer-state-reasons.folder-over-temperature"
 msgstr ""
 
 #. TRANSLATORS: Folder Power Saver
-#: locale/ipp-strings.c:2944
+#: locale/ipp-strings.c:2982
 msgid "printer-state-reasons.folder-power-saver"
 msgstr ""
 
 #. TRANSLATORS: Folder Recoverable Failure
-#: locale/ipp-strings.c:2946
+#: locale/ipp-strings.c:2984
 msgid "printer-state-reasons.folder-recoverable-failure"
 msgstr ""
 
 #. TRANSLATORS: Folder Recoverable Storage
-#: locale/ipp-strings.c:2948
+#: locale/ipp-strings.c:2986
 msgid "printer-state-reasons.folder-recoverable-storage"
 msgstr ""
 
 #. TRANSLATORS: Folder Removed
-#: locale/ipp-strings.c:2950
+#: locale/ipp-strings.c:2988
 msgid "printer-state-reasons.folder-removed"
 msgstr ""
 
 #. TRANSLATORS: Folder Resource Added
-#: locale/ipp-strings.c:2952
+#: locale/ipp-strings.c:2990
 msgid "printer-state-reasons.folder-resource-added"
 msgstr ""
 
 #. TRANSLATORS: Folder Resource Removed
-#: locale/ipp-strings.c:2954
+#: locale/ipp-strings.c:2992
 msgid "printer-state-reasons.folder-resource-removed"
 msgstr ""
 
 #. TRANSLATORS: Folder Thermistor Failure
-#: locale/ipp-strings.c:2956
+#: locale/ipp-strings.c:2994
 msgid "printer-state-reasons.folder-thermistor-failure"
 msgstr ""
 
 #. TRANSLATORS: Folder Timing Failure
-#: locale/ipp-strings.c:2958
+#: locale/ipp-strings.c:2996
 msgid "printer-state-reasons.folder-timing-failure"
 msgstr ""
 
 #. TRANSLATORS: Folder Turned Off
-#: locale/ipp-strings.c:2960
+#: locale/ipp-strings.c:2998
 msgid "printer-state-reasons.folder-turned-off"
 msgstr ""
 
 #. TRANSLATORS: Folder Turned On
-#: locale/ipp-strings.c:2962
+#: locale/ipp-strings.c:3000
 msgid "printer-state-reasons.folder-turned-on"
 msgstr ""
 
 #. TRANSLATORS: Folder Under Temperature
-#: locale/ipp-strings.c:2964
+#: locale/ipp-strings.c:3002
 msgid "printer-state-reasons.folder-under-temperature"
 msgstr ""
 
 #. TRANSLATORS: Folder Unrecoverable Failure
-#: locale/ipp-strings.c:2966
+#: locale/ipp-strings.c:3004
 msgid "printer-state-reasons.folder-unrecoverable-failure"
 msgstr ""
 
 #. TRANSLATORS: Folder Unrecoverable Storage Error
-#: locale/ipp-strings.c:2968
+#: locale/ipp-strings.c:3006
 msgid "printer-state-reasons.folder-unrecoverable-storage-error"
 msgstr ""
 
 #. TRANSLATORS: Folder Warming Up
-#: locale/ipp-strings.c:2970
+#: locale/ipp-strings.c:3008
 msgid "printer-state-reasons.folder-warming-up"
 msgstr ""
 
 #. TRANSLATORS: Fuser temperature high
-#: locale/ipp-strings.c:2972
+#: locale/ipp-strings.c:3010
 msgid "printer-state-reasons.fuser-over-temp"
 msgstr ""
 
 #. TRANSLATORS: Fuser temperature low
-#: locale/ipp-strings.c:2974
+#: locale/ipp-strings.c:3012
 msgid "printer-state-reasons.fuser-under-temp"
 msgstr ""
 
 #. TRANSLATORS: Hold New Jobs
-#: locale/ipp-strings.c:2976
+#: locale/ipp-strings.c:3014
 msgid "printer-state-reasons.hold-new-jobs"
 msgstr ""
 
 #. TRANSLATORS: Identify Printer
-#: locale/ipp-strings.c:2978
+#: locale/ipp-strings.c:3016
 msgid "printer-state-reasons.identify-printer-requested"
 msgstr ""
 
 #. TRANSLATORS: Imprinter Added
-#: locale/ipp-strings.c:2980
+#: locale/ipp-strings.c:3018
 msgid "printer-state-reasons.imprinter-added"
 msgstr ""
 
 #. TRANSLATORS: Imprinter Almost Empty
-#: locale/ipp-strings.c:2982
+#: locale/ipp-strings.c:3020
 msgid "printer-state-reasons.imprinter-almost-empty"
 msgstr ""
 
 #. TRANSLATORS: Imprinter Almost Full
-#: locale/ipp-strings.c:2984
+#: locale/ipp-strings.c:3022
 msgid "printer-state-reasons.imprinter-almost-full"
 msgstr ""
 
 #. TRANSLATORS: Imprinter At Limit
-#: locale/ipp-strings.c:2986
+#: locale/ipp-strings.c:3024
 msgid "printer-state-reasons.imprinter-at-limit"
 msgstr ""
 
 #. TRANSLATORS: Imprinter Closed
-#: locale/ipp-strings.c:2988
+#: locale/ipp-strings.c:3026
 msgid "printer-state-reasons.imprinter-closed"
 msgstr ""
 
 #. TRANSLATORS: Imprinter Configuration Change
-#: locale/ipp-strings.c:2990
+#: locale/ipp-strings.c:3028
 msgid "printer-state-reasons.imprinter-configuration-change"
 msgstr ""
 
 #. TRANSLATORS: Imprinter Cover Closed
-#: locale/ipp-strings.c:2992
+#: locale/ipp-strings.c:3030
 msgid "printer-state-reasons.imprinter-cover-closed"
 msgstr ""
 
 #. TRANSLATORS: Imprinter Cover Open
-#: locale/ipp-strings.c:2994
+#: locale/ipp-strings.c:3032
 msgid "printer-state-reasons.imprinter-cover-open"
 msgstr ""
 
 #. TRANSLATORS: Imprinter Empty
-#: locale/ipp-strings.c:2996
+#: locale/ipp-strings.c:3034
 msgid "printer-state-reasons.imprinter-empty"
 msgstr ""
 
 #. TRANSLATORS: Imprinter Full
-#: locale/ipp-strings.c:2998
+#: locale/ipp-strings.c:3036
 msgid "printer-state-reasons.imprinter-full"
 msgstr ""
 
 #. TRANSLATORS: Imprinter Interlock Closed
-#: locale/ipp-strings.c:3000
+#: locale/ipp-strings.c:3038
 msgid "printer-state-reasons.imprinter-interlock-closed"
 msgstr ""
 
 #. TRANSLATORS: Imprinter Interlock Open
-#: locale/ipp-strings.c:3002
+#: locale/ipp-strings.c:3040
 msgid "printer-state-reasons.imprinter-interlock-open"
 msgstr ""
 
 #. TRANSLATORS: Imprinter Jam
-#: locale/ipp-strings.c:3004
+#: locale/ipp-strings.c:3042
 msgid "printer-state-reasons.imprinter-jam"
 msgstr ""
 
 #. TRANSLATORS: Imprinter Life Almost Over
-#: locale/ipp-strings.c:3006
+#: locale/ipp-strings.c:3044
 msgid "printer-state-reasons.imprinter-life-almost-over"
 msgstr ""
 
 #. TRANSLATORS: Imprinter Life Over
-#: locale/ipp-strings.c:3008
+#: locale/ipp-strings.c:3046
 msgid "printer-state-reasons.imprinter-life-over"
 msgstr ""
 
 #. TRANSLATORS: Imprinter Memory Exhausted
-#: locale/ipp-strings.c:3010
+#: locale/ipp-strings.c:3048
 msgid "printer-state-reasons.imprinter-memory-exhausted"
 msgstr ""
 
 #. TRANSLATORS: Imprinter Missing
-#: locale/ipp-strings.c:3012
+#: locale/ipp-strings.c:3050
 msgid "printer-state-reasons.imprinter-missing"
 msgstr ""
 
 #. TRANSLATORS: Imprinter Motor Failure
-#: locale/ipp-strings.c:3014
+#: locale/ipp-strings.c:3052
 msgid "printer-state-reasons.imprinter-motor-failure"
 msgstr ""
 
 #. TRANSLATORS: Imprinter Near Limit
-#: locale/ipp-strings.c:3016
+#: locale/ipp-strings.c:3054
 msgid "printer-state-reasons.imprinter-near-limit"
 msgstr ""
 
 #. TRANSLATORS: Imprinter Offline
-#: locale/ipp-strings.c:3018
+#: locale/ipp-strings.c:3056
 msgid "printer-state-reasons.imprinter-offline"
 msgstr ""
 
 #. TRANSLATORS: Imprinter Opened
-#: locale/ipp-strings.c:3020
+#: locale/ipp-strings.c:3058
 msgid "printer-state-reasons.imprinter-opened"
 msgstr ""
 
 #. TRANSLATORS: Imprinter Over Temperature
-#: locale/ipp-strings.c:3022
+#: locale/ipp-strings.c:3060
 msgid "printer-state-reasons.imprinter-over-temperature"
 msgstr ""
 
 #. TRANSLATORS: Imprinter Power Saver
-#: locale/ipp-strings.c:3024
+#: locale/ipp-strings.c:3062
 msgid "printer-state-reasons.imprinter-power-saver"
 msgstr ""
 
 #. TRANSLATORS: Imprinter Recoverable Failure
-#: locale/ipp-strings.c:3026
+#: locale/ipp-strings.c:3064
 msgid "printer-state-reasons.imprinter-recoverable-failure"
 msgstr ""
 
 #. TRANSLATORS: Imprinter Recoverable Storage
-#: locale/ipp-strings.c:3028
+#: locale/ipp-strings.c:3066
 msgid "printer-state-reasons.imprinter-recoverable-storage"
 msgstr ""
 
 #. TRANSLATORS: Imprinter Removed
-#: locale/ipp-strings.c:3030
+#: locale/ipp-strings.c:3068
 msgid "printer-state-reasons.imprinter-removed"
 msgstr ""
 
 #. TRANSLATORS: Imprinter Resource Added
-#: locale/ipp-strings.c:3032
+#: locale/ipp-strings.c:3070
 msgid "printer-state-reasons.imprinter-resource-added"
 msgstr ""
 
 #. TRANSLATORS: Imprinter Resource Removed
-#: locale/ipp-strings.c:3034
+#: locale/ipp-strings.c:3072
 msgid "printer-state-reasons.imprinter-resource-removed"
 msgstr ""
 
 #. TRANSLATORS: Imprinter Thermistor Failure
-#: locale/ipp-strings.c:3036
+#: locale/ipp-strings.c:3074
 msgid "printer-state-reasons.imprinter-thermistor-failure"
 msgstr ""
 
 #. TRANSLATORS: Imprinter Timing Failure
-#: locale/ipp-strings.c:3038
+#: locale/ipp-strings.c:3076
 msgid "printer-state-reasons.imprinter-timing-failure"
 msgstr ""
 
 #. TRANSLATORS: Imprinter Turned Off
-#: locale/ipp-strings.c:3040
+#: locale/ipp-strings.c:3078
 msgid "printer-state-reasons.imprinter-turned-off"
 msgstr ""
 
 #. TRANSLATORS: Imprinter Turned On
-#: locale/ipp-strings.c:3042
+#: locale/ipp-strings.c:3080
 msgid "printer-state-reasons.imprinter-turned-on"
 msgstr ""
 
 #. TRANSLATORS: Imprinter Under Temperature
-#: locale/ipp-strings.c:3044
+#: locale/ipp-strings.c:3082
 msgid "printer-state-reasons.imprinter-under-temperature"
 msgstr ""
 
 #. TRANSLATORS: Imprinter Unrecoverable Failure
-#: locale/ipp-strings.c:3046
+#: locale/ipp-strings.c:3084
 msgid "printer-state-reasons.imprinter-unrecoverable-failure"
 msgstr ""
 
 #. TRANSLATORS: Imprinter Unrecoverable Storage Error
-#: locale/ipp-strings.c:3048
+#: locale/ipp-strings.c:3086
 msgid "printer-state-reasons.imprinter-unrecoverable-storage-error"
 msgstr ""
 
 #. TRANSLATORS: Imprinter Warming Up
-#: locale/ipp-strings.c:3050
+#: locale/ipp-strings.c:3088
 msgid "printer-state-reasons.imprinter-warming-up"
 msgstr ""
 
 #. TRANSLATORS: Input Cannot Feed Size Selected
-#: locale/ipp-strings.c:3052
+#: locale/ipp-strings.c:3090
 msgid "printer-state-reasons.input-cannot-feed-size-selected"
 msgstr ""
 
 #. TRANSLATORS: Input Manual Input Request
-#: locale/ipp-strings.c:3054
+#: locale/ipp-strings.c:3092
 msgid "printer-state-reasons.input-manual-input-request"
 msgstr ""
 
 #. TRANSLATORS: Input Media Color Change
-#: locale/ipp-strings.c:3056
+#: locale/ipp-strings.c:3094
 msgid "printer-state-reasons.input-media-color-change"
 msgstr ""
 
 #. TRANSLATORS: Input Media Form Parts Change
-#: locale/ipp-strings.c:3058
+#: locale/ipp-strings.c:3096
 msgid "printer-state-reasons.input-media-form-parts-change"
 msgstr ""
 
 #. TRANSLATORS: Input Media Size Change
-#: locale/ipp-strings.c:3060
+#: locale/ipp-strings.c:3098
 msgid "printer-state-reasons.input-media-size-change"
 msgstr ""
 
 #. TRANSLATORS: Input Media Tray Failure
-#: locale/ipp-strings.c:3062
+#: locale/ipp-strings.c:3100
 msgid "printer-state-reasons.input-media-tray-failure"
 msgstr ""
 
 #. TRANSLATORS: Input Media Tray Feed Error
-#: locale/ipp-strings.c:3064
+#: locale/ipp-strings.c:3102
 msgid "printer-state-reasons.input-media-tray-feed-error"
 msgstr ""
 
 #. TRANSLATORS: Input Media Tray Jam
-#: locale/ipp-strings.c:3066
+#: locale/ipp-strings.c:3104
 msgid "printer-state-reasons.input-media-tray-jam"
 msgstr ""
 
 #. TRANSLATORS: Input Media Type Change
-#: locale/ipp-strings.c:3068
+#: locale/ipp-strings.c:3106
 msgid "printer-state-reasons.input-media-type-change"
 msgstr ""
 
 #. TRANSLATORS: Input Media Weight Change
-#: locale/ipp-strings.c:3070
+#: locale/ipp-strings.c:3108
 msgid "printer-state-reasons.input-media-weight-change"
 msgstr ""
 
 #. TRANSLATORS: Input Pick Roller Failure
-#: locale/ipp-strings.c:3072
+#: locale/ipp-strings.c:3110
 msgid "printer-state-reasons.input-pick-roller-failure"
 msgstr ""
 
 #. TRANSLATORS: Input Pick Roller Life Over
-#: locale/ipp-strings.c:3074
+#: locale/ipp-strings.c:3112
 msgid "printer-state-reasons.input-pick-roller-life-over"
 msgstr ""
 
 #. TRANSLATORS: Input Pick Roller Life Warn
-#: locale/ipp-strings.c:3076
+#: locale/ipp-strings.c:3114
 msgid "printer-state-reasons.input-pick-roller-life-warn"
 msgstr ""
 
 #. TRANSLATORS: Input Pick Roller Missing
-#: locale/ipp-strings.c:3078
+#: locale/ipp-strings.c:3116
 msgid "printer-state-reasons.input-pick-roller-missing"
 msgstr ""
 
 #. TRANSLATORS: Input Tray Elevation Failure
-#: locale/ipp-strings.c:3080
+#: locale/ipp-strings.c:3118
 msgid "printer-state-reasons.input-tray-elevation-failure"
 msgstr ""
 
 #. TRANSLATORS: Paper tray is missing
-#: locale/ipp-strings.c:3082
+#: locale/ipp-strings.c:3120
 msgid "printer-state-reasons.input-tray-missing"
 msgstr ""
 
 #. TRANSLATORS: Input Tray Position Failure
-#: locale/ipp-strings.c:3084
+#: locale/ipp-strings.c:3122
 msgid "printer-state-reasons.input-tray-position-failure"
 msgstr ""
 
 #. TRANSLATORS: Inserter Added
-#: locale/ipp-strings.c:3086
+#: locale/ipp-strings.c:3124
 msgid "printer-state-reasons.inserter-added"
 msgstr ""
 
 #. TRANSLATORS: Inserter Almost Empty
-#: locale/ipp-strings.c:3088
+#: locale/ipp-strings.c:3126
 msgid "printer-state-reasons.inserter-almost-empty"
 msgstr ""
 
 #. TRANSLATORS: Inserter Almost Full
-#: locale/ipp-strings.c:3090
+#: locale/ipp-strings.c:3128
 msgid "printer-state-reasons.inserter-almost-full"
 msgstr ""
 
 #. TRANSLATORS: Inserter At Limit
-#: locale/ipp-strings.c:3092
+#: locale/ipp-strings.c:3130
 msgid "printer-state-reasons.inserter-at-limit"
 msgstr ""
 
 #. TRANSLATORS: Inserter Closed
-#: locale/ipp-strings.c:3094
+#: locale/ipp-strings.c:3132
 msgid "printer-state-reasons.inserter-closed"
 msgstr ""
 
 #. TRANSLATORS: Inserter Configuration Change
-#: locale/ipp-strings.c:3096
+#: locale/ipp-strings.c:3134
 msgid "printer-state-reasons.inserter-configuration-change"
 msgstr ""
 
 #. TRANSLATORS: Inserter Cover Closed
-#: locale/ipp-strings.c:3098
+#: locale/ipp-strings.c:3136
 msgid "printer-state-reasons.inserter-cover-closed"
 msgstr ""
 
 #. TRANSLATORS: Inserter Cover Open
-#: locale/ipp-strings.c:3100
+#: locale/ipp-strings.c:3138
 msgid "printer-state-reasons.inserter-cover-open"
 msgstr ""
 
 #. TRANSLATORS: Inserter Empty
-#: locale/ipp-strings.c:3102
+#: locale/ipp-strings.c:3140
 msgid "printer-state-reasons.inserter-empty"
 msgstr ""
 
 #. TRANSLATORS: Inserter Full
-#: locale/ipp-strings.c:3104
+#: locale/ipp-strings.c:3142
 msgid "printer-state-reasons.inserter-full"
 msgstr ""
 
 #. TRANSLATORS: Inserter Interlock Closed
-#: locale/ipp-strings.c:3106
+#: locale/ipp-strings.c:3144
 msgid "printer-state-reasons.inserter-interlock-closed"
 msgstr ""
 
 #. TRANSLATORS: Inserter Interlock Open
-#: locale/ipp-strings.c:3108
+#: locale/ipp-strings.c:3146
 msgid "printer-state-reasons.inserter-interlock-open"
 msgstr ""
 
 #. TRANSLATORS: Inserter Jam
-#: locale/ipp-strings.c:3110
+#: locale/ipp-strings.c:3148
 msgid "printer-state-reasons.inserter-jam"
 msgstr ""
 
 #. TRANSLATORS: Inserter Life Almost Over
-#: locale/ipp-strings.c:3112
+#: locale/ipp-strings.c:3150
 msgid "printer-state-reasons.inserter-life-almost-over"
 msgstr ""
 
 #. TRANSLATORS: Inserter Life Over
-#: locale/ipp-strings.c:3114
+#: locale/ipp-strings.c:3152
 msgid "printer-state-reasons.inserter-life-over"
 msgstr ""
 
 #. TRANSLATORS: Inserter Memory Exhausted
-#: locale/ipp-strings.c:3116
+#: locale/ipp-strings.c:3154
 msgid "printer-state-reasons.inserter-memory-exhausted"
 msgstr ""
 
 #. TRANSLATORS: Inserter Missing
-#: locale/ipp-strings.c:3118
+#: locale/ipp-strings.c:3156
 msgid "printer-state-reasons.inserter-missing"
 msgstr ""
 
 #. TRANSLATORS: Inserter Motor Failure
-#: locale/ipp-strings.c:3120
+#: locale/ipp-strings.c:3158
 msgid "printer-state-reasons.inserter-motor-failure"
 msgstr ""
 
 #. TRANSLATORS: Inserter Near Limit
-#: locale/ipp-strings.c:3122
+#: locale/ipp-strings.c:3160
 msgid "printer-state-reasons.inserter-near-limit"
 msgstr ""
 
 #. TRANSLATORS: Inserter Offline
-#: locale/ipp-strings.c:3124
+#: locale/ipp-strings.c:3162
 msgid "printer-state-reasons.inserter-offline"
 msgstr ""
 
 #. TRANSLATORS: Inserter Opened
-#: locale/ipp-strings.c:3126
+#: locale/ipp-strings.c:3164
 msgid "printer-state-reasons.inserter-opened"
 msgstr ""
 
 #. TRANSLATORS: Inserter Over Temperature
-#: locale/ipp-strings.c:3128
+#: locale/ipp-strings.c:3166
 msgid "printer-state-reasons.inserter-over-temperature"
 msgstr ""
 
 #. TRANSLATORS: Inserter Power Saver
-#: locale/ipp-strings.c:3130
+#: locale/ipp-strings.c:3168
 msgid "printer-state-reasons.inserter-power-saver"
 msgstr ""
 
 #. TRANSLATORS: Inserter Recoverable Failure
-#: locale/ipp-strings.c:3132
+#: locale/ipp-strings.c:3170
 msgid "printer-state-reasons.inserter-recoverable-failure"
 msgstr ""
 
 #. TRANSLATORS: Inserter Recoverable Storage
-#: locale/ipp-strings.c:3134
+#: locale/ipp-strings.c:3172
 msgid "printer-state-reasons.inserter-recoverable-storage"
 msgstr ""
 
 #. TRANSLATORS: Inserter Removed
-#: locale/ipp-strings.c:3136
+#: locale/ipp-strings.c:3174
 msgid "printer-state-reasons.inserter-removed"
 msgstr ""
 
 #. TRANSLATORS: Inserter Resource Added
-#: locale/ipp-strings.c:3138
+#: locale/ipp-strings.c:3176
 msgid "printer-state-reasons.inserter-resource-added"
 msgstr ""
 
 #. TRANSLATORS: Inserter Resource Removed
-#: locale/ipp-strings.c:3140
+#: locale/ipp-strings.c:3178
 msgid "printer-state-reasons.inserter-resource-removed"
 msgstr ""
 
 #. TRANSLATORS: Inserter Thermistor Failure
-#: locale/ipp-strings.c:3142
+#: locale/ipp-strings.c:3180
 msgid "printer-state-reasons.inserter-thermistor-failure"
 msgstr ""
 
 #. TRANSLATORS: Inserter Timing Failure
-#: locale/ipp-strings.c:3144
+#: locale/ipp-strings.c:3182
 msgid "printer-state-reasons.inserter-timing-failure"
 msgstr ""
 
 #. TRANSLATORS: Inserter Turned Off
-#: locale/ipp-strings.c:3146
+#: locale/ipp-strings.c:3184
 msgid "printer-state-reasons.inserter-turned-off"
 msgstr ""
 
 #. TRANSLATORS: Inserter Turned On
-#: locale/ipp-strings.c:3148
+#: locale/ipp-strings.c:3186
 msgid "printer-state-reasons.inserter-turned-on"
 msgstr ""
 
 #. TRANSLATORS: Inserter Under Temperature
-#: locale/ipp-strings.c:3150
+#: locale/ipp-strings.c:3188
 msgid "printer-state-reasons.inserter-under-temperature"
 msgstr ""
 
 #. TRANSLATORS: Inserter Unrecoverable Failure
-#: locale/ipp-strings.c:3152
+#: locale/ipp-strings.c:3190
 msgid "printer-state-reasons.inserter-unrecoverable-failure"
 msgstr ""
 
 #. TRANSLATORS: Inserter Unrecoverable Storage Error
-#: locale/ipp-strings.c:3154
+#: locale/ipp-strings.c:3192
 msgid "printer-state-reasons.inserter-unrecoverable-storage-error"
 msgstr ""
 
 #. TRANSLATORS: Inserter Warming Up
-#: locale/ipp-strings.c:3156
+#: locale/ipp-strings.c:3194
 msgid "printer-state-reasons.inserter-warming-up"
 msgstr ""
 
 #. TRANSLATORS: Interlock Closed
-#: locale/ipp-strings.c:3158
+#: locale/ipp-strings.c:3196
 msgid "printer-state-reasons.interlock-closed"
 msgstr ""
 
 #. TRANSLATORS: Interlock Open
-#: locale/ipp-strings.c:3160
+#: locale/ipp-strings.c:3198
 msgid "printer-state-reasons.interlock-open"
 msgstr ""
 
 #. TRANSLATORS: Interpreter Cartridge Added
-#: locale/ipp-strings.c:3162
+#: locale/ipp-strings.c:3200
 msgid "printer-state-reasons.interpreter-cartridge-added"
 msgstr ""
 
 #. TRANSLATORS: Interpreter Cartridge Removed
-#: locale/ipp-strings.c:3164
+#: locale/ipp-strings.c:3202
 msgid "printer-state-reasons.interpreter-cartridge-deleted"
 msgstr ""
 
 #. TRANSLATORS: Interpreter Complex Page Encountered
-#: locale/ipp-strings.c:3166
+#: locale/ipp-strings.c:3204
 msgid "printer-state-reasons.interpreter-complex-page-encountered"
 msgstr ""
 
 #. TRANSLATORS: Interpreter Memory Decrease
-#: locale/ipp-strings.c:3168
+#: locale/ipp-strings.c:3206
 msgid "printer-state-reasons.interpreter-memory-decrease"
 msgstr ""
 
 #. TRANSLATORS: Interpreter Memory Increase
-#: locale/ipp-strings.c:3170
+#: locale/ipp-strings.c:3208
 msgid "printer-state-reasons.interpreter-memory-increase"
 msgstr ""
 
 #. TRANSLATORS: Interpreter Resource Added
-#: locale/ipp-strings.c:3172
+#: locale/ipp-strings.c:3210
 msgid "printer-state-reasons.interpreter-resource-added"
 msgstr ""
 
 #. TRANSLATORS: Interpreter Resource Deleted
-#: locale/ipp-strings.c:3174
+#: locale/ipp-strings.c:3212
 msgid "printer-state-reasons.interpreter-resource-deleted"
 msgstr ""
 
 #. TRANSLATORS: Printer resource unavailable
-#: locale/ipp-strings.c:3176
+#: locale/ipp-strings.c:3214
 msgid "printer-state-reasons.interpreter-resource-unavailable"
 msgstr ""
 
 #. TRANSLATORS: Lamp At End of Life
-#: locale/ipp-strings.c:3178
+#: locale/ipp-strings.c:3216
 msgid "printer-state-reasons.lamp-at-eol"
 msgstr ""
 
 #. TRANSLATORS: Lamp Failure
-#: locale/ipp-strings.c:3180
+#: locale/ipp-strings.c:3218
 msgid "printer-state-reasons.lamp-failure"
 msgstr ""
 
 #. TRANSLATORS: Lamp Near End of Life
-#: locale/ipp-strings.c:3182
+#: locale/ipp-strings.c:3220
 msgid "printer-state-reasons.lamp-near-eol"
 msgstr ""
 
 #. TRANSLATORS: Laser At End of Life
-#: locale/ipp-strings.c:3184
+#: locale/ipp-strings.c:3222
 msgid "printer-state-reasons.laser-at-eol"
 msgstr ""
 
 #. TRANSLATORS: Laser Failure
-#: locale/ipp-strings.c:3186
+#: locale/ipp-strings.c:3224
 msgid "printer-state-reasons.laser-failure"
 msgstr ""
 
 #. TRANSLATORS: Laser Near End of Life
-#: locale/ipp-strings.c:3188
+#: locale/ipp-strings.c:3226
 msgid "printer-state-reasons.laser-near-eol"
 msgstr ""
 
 #. TRANSLATORS: Envelope Maker Added
-#: locale/ipp-strings.c:3190
+#: locale/ipp-strings.c:3228
 msgid "printer-state-reasons.make-envelope-added"
 msgstr ""
 
 #. TRANSLATORS: Envelope Maker Almost Empty
-#: locale/ipp-strings.c:3192
+#: locale/ipp-strings.c:3230
 msgid "printer-state-reasons.make-envelope-almost-empty"
 msgstr ""
 
 #. TRANSLATORS: Envelope Maker Almost Full
-#: locale/ipp-strings.c:3194
+#: locale/ipp-strings.c:3232
 msgid "printer-state-reasons.make-envelope-almost-full"
 msgstr ""
 
 #. TRANSLATORS: Envelope Maker At Limit
-#: locale/ipp-strings.c:3196
+#: locale/ipp-strings.c:3234
 msgid "printer-state-reasons.make-envelope-at-limit"
 msgstr ""
 
 #. TRANSLATORS: Envelope Maker Closed
-#: locale/ipp-strings.c:3198
+#: locale/ipp-strings.c:3236
 msgid "printer-state-reasons.make-envelope-closed"
 msgstr ""
 
 #. TRANSLATORS: Envelope Maker Configuration Change
-#: locale/ipp-strings.c:3200
+#: locale/ipp-strings.c:3238
 msgid "printer-state-reasons.make-envelope-configuration-change"
 msgstr ""
 
 #. TRANSLATORS: Envelope Maker Cover Closed
-#: locale/ipp-strings.c:3202
+#: locale/ipp-strings.c:3240
 msgid "printer-state-reasons.make-envelope-cover-closed"
 msgstr ""
 
 #. TRANSLATORS: Envelope Maker Cover Open
-#: locale/ipp-strings.c:3204
+#: locale/ipp-strings.c:3242
 msgid "printer-state-reasons.make-envelope-cover-open"
 msgstr ""
 
 #. TRANSLATORS: Envelope Maker Empty
-#: locale/ipp-strings.c:3206
+#: locale/ipp-strings.c:3244
 msgid "printer-state-reasons.make-envelope-empty"
 msgstr ""
 
 #. TRANSLATORS: Envelope Maker Full
-#: locale/ipp-strings.c:3208
+#: locale/ipp-strings.c:3246
 msgid "printer-state-reasons.make-envelope-full"
 msgstr ""
 
 #. TRANSLATORS: Envelope Maker Interlock Closed
-#: locale/ipp-strings.c:3210
+#: locale/ipp-strings.c:3248
 msgid "printer-state-reasons.make-envelope-interlock-closed"
 msgstr ""
 
 #. TRANSLATORS: Envelope Maker Interlock Open
-#: locale/ipp-strings.c:3212
+#: locale/ipp-strings.c:3250
 msgid "printer-state-reasons.make-envelope-interlock-open"
 msgstr ""
 
 #. TRANSLATORS: Envelope Maker Jam
-#: locale/ipp-strings.c:3214
+#: locale/ipp-strings.c:3252
 msgid "printer-state-reasons.make-envelope-jam"
 msgstr ""
 
 #. TRANSLATORS: Envelope Maker Life Almost Over
-#: locale/ipp-strings.c:3216
+#: locale/ipp-strings.c:3254
 msgid "printer-state-reasons.make-envelope-life-almost-over"
 msgstr ""
 
 #. TRANSLATORS: Envelope Maker Life Over
-#: locale/ipp-strings.c:3218
+#: locale/ipp-strings.c:3256
 msgid "printer-state-reasons.make-envelope-life-over"
 msgstr ""
 
 #. TRANSLATORS: Envelope Maker Memory Exhausted
-#: locale/ipp-strings.c:3220
+#: locale/ipp-strings.c:3258
 msgid "printer-state-reasons.make-envelope-memory-exhausted"
 msgstr ""
 
 #. TRANSLATORS: Envelope Maker Missing
-#: locale/ipp-strings.c:3222
+#: locale/ipp-strings.c:3260
 msgid "printer-state-reasons.make-envelope-missing"
 msgstr ""
 
 #. TRANSLATORS: Envelope Maker Motor Failure
-#: locale/ipp-strings.c:3224
+#: locale/ipp-strings.c:3262
 msgid "printer-state-reasons.make-envelope-motor-failure"
 msgstr ""
 
 #. TRANSLATORS: Envelope Maker Near Limit
-#: locale/ipp-strings.c:3226
+#: locale/ipp-strings.c:3264
 msgid "printer-state-reasons.make-envelope-near-limit"
 msgstr ""
 
 #. TRANSLATORS: Envelope Maker Offline
-#: locale/ipp-strings.c:3228
+#: locale/ipp-strings.c:3266
 msgid "printer-state-reasons.make-envelope-offline"
 msgstr ""
 
 #. TRANSLATORS: Envelope Maker Opened
-#: locale/ipp-strings.c:3230
+#: locale/ipp-strings.c:3268
 msgid "printer-state-reasons.make-envelope-opened"
 msgstr ""
 
 #. TRANSLATORS: Envelope Maker Over Temperature
-#: locale/ipp-strings.c:3232
+#: locale/ipp-strings.c:3270
 msgid "printer-state-reasons.make-envelope-over-temperature"
 msgstr ""
 
 #. TRANSLATORS: Envelope Maker Power Saver
-#: locale/ipp-strings.c:3234
+#: locale/ipp-strings.c:3272
 msgid "printer-state-reasons.make-envelope-power-saver"
 msgstr ""
 
 #. TRANSLATORS: Envelope Maker Recoverable Failure
-#: locale/ipp-strings.c:3236
+#: locale/ipp-strings.c:3274
 msgid "printer-state-reasons.make-envelope-recoverable-failure"
 msgstr ""
 
 #. TRANSLATORS: Envelope Maker Recoverable Storage
-#: locale/ipp-strings.c:3238
+#: locale/ipp-strings.c:3276
 msgid "printer-state-reasons.make-envelope-recoverable-storage"
 msgstr ""
 
 #. TRANSLATORS: Envelope Maker Removed
-#: locale/ipp-strings.c:3240
+#: locale/ipp-strings.c:3278
 msgid "printer-state-reasons.make-envelope-removed"
 msgstr ""
 
 #. TRANSLATORS: Envelope Maker Resource Added
-#: locale/ipp-strings.c:3242
+#: locale/ipp-strings.c:3280
 msgid "printer-state-reasons.make-envelope-resource-added"
 msgstr ""
 
 #. TRANSLATORS: Envelope Maker Resource Removed
-#: locale/ipp-strings.c:3244
+#: locale/ipp-strings.c:3282
 msgid "printer-state-reasons.make-envelope-resource-removed"
 msgstr ""
 
 #. TRANSLATORS: Envelope Maker Thermistor Failure
-#: locale/ipp-strings.c:3246
+#: locale/ipp-strings.c:3284
 msgid "printer-state-reasons.make-envelope-thermistor-failure"
 msgstr ""
 
 #. TRANSLATORS: Envelope Maker Timing Failure
-#: locale/ipp-strings.c:3248
+#: locale/ipp-strings.c:3286
 msgid "printer-state-reasons.make-envelope-timing-failure"
 msgstr ""
 
 #. TRANSLATORS: Envelope Maker Turned Off
-#: locale/ipp-strings.c:3250
+#: locale/ipp-strings.c:3288
 msgid "printer-state-reasons.make-envelope-turned-off"
 msgstr ""
 
 #. TRANSLATORS: Envelope Maker Turned On
-#: locale/ipp-strings.c:3252
+#: locale/ipp-strings.c:3290
 msgid "printer-state-reasons.make-envelope-turned-on"
 msgstr ""
 
 #. TRANSLATORS: Envelope Maker Under Temperature
-#: locale/ipp-strings.c:3254
+#: locale/ipp-strings.c:3292
 msgid "printer-state-reasons.make-envelope-under-temperature"
 msgstr ""
 
 #. TRANSLATORS: Envelope Maker Unrecoverable Failure
-#: locale/ipp-strings.c:3256
+#: locale/ipp-strings.c:3294
 msgid "printer-state-reasons.make-envelope-unrecoverable-failure"
 msgstr ""
 
 #. TRANSLATORS: Envelope Maker Unrecoverable Storage Error
-#: locale/ipp-strings.c:3258
+#: locale/ipp-strings.c:3296
 msgid "printer-state-reasons.make-envelope-unrecoverable-storage-error"
 msgstr ""
 
 #. TRANSLATORS: Envelope Maker Warming Up
-#: locale/ipp-strings.c:3260
+#: locale/ipp-strings.c:3298
 msgid "printer-state-reasons.make-envelope-warming-up"
 msgstr ""
 
 #. TRANSLATORS: Marker Adjusting Print Quality
-#: locale/ipp-strings.c:3262
+#: locale/ipp-strings.c:3300
 msgid "printer-state-reasons.marker-adjusting-print-quality"
 msgstr ""
 
 #. TRANSLATORS: Marker Cleaner Missing
-#: locale/ipp-strings.c:3264
+#: locale/ipp-strings.c:3302
 msgid "printer-state-reasons.marker-cleaner-missing"
 msgstr ""
 
 #. TRANSLATORS: Marker Developer Almost Empty
-#: locale/ipp-strings.c:3266
+#: locale/ipp-strings.c:3304
 msgid "printer-state-reasons.marker-developer-almost-empty"
 msgstr ""
 
 #. TRANSLATORS: Marker Developer Empty
-#: locale/ipp-strings.c:3268
+#: locale/ipp-strings.c:3306
 msgid "printer-state-reasons.marker-developer-empty"
 msgstr ""
 
 #. TRANSLATORS: Marker Developer Missing
-#: locale/ipp-strings.c:3270
+#: locale/ipp-strings.c:3308
 msgid "printer-state-reasons.marker-developer-missing"
 msgstr ""
 
 #. TRANSLATORS: Marker Fuser Missing
-#: locale/ipp-strings.c:3272
+#: locale/ipp-strings.c:3310
 msgid "printer-state-reasons.marker-fuser-missing"
 msgstr ""
 
 #. TRANSLATORS: Marker Fuser Thermistor Failure
-#: locale/ipp-strings.c:3274
+#: locale/ipp-strings.c:3312
 msgid "printer-state-reasons.marker-fuser-thermistor-failure"
 msgstr ""
 
 #. TRANSLATORS: Marker Fuser Timing Failure
-#: locale/ipp-strings.c:3276
+#: locale/ipp-strings.c:3314
 msgid "printer-state-reasons.marker-fuser-timing-failure"
 msgstr ""
 
 #. TRANSLATORS: Marker Ink Almost Empty
-#: locale/ipp-strings.c:3278
+#: locale/ipp-strings.c:3316
 msgid "printer-state-reasons.marker-ink-almost-empty"
 msgstr ""
 
 #. TRANSLATORS: Marker Ink Empty
-#: locale/ipp-strings.c:3280
+#: locale/ipp-strings.c:3318
 msgid "printer-state-reasons.marker-ink-empty"
 msgstr ""
 
 #. TRANSLATORS: Marker Ink Missing
-#: locale/ipp-strings.c:3282
+#: locale/ipp-strings.c:3320
 msgid "printer-state-reasons.marker-ink-missing"
 msgstr ""
 
 #. TRANSLATORS: Marker Opc Missing
-#: locale/ipp-strings.c:3284
+#: locale/ipp-strings.c:3322
 msgid "printer-state-reasons.marker-opc-missing"
 msgstr ""
 
 #. TRANSLATORS: Marker Print Ribbon Almost Empty
-#: locale/ipp-strings.c:3286
+#: locale/ipp-strings.c:3324
 msgid "printer-state-reasons.marker-print-ribbon-almost-empty"
 msgstr ""
 
 #. TRANSLATORS: Marker Print Ribbon Empty
-#: locale/ipp-strings.c:3288
+#: locale/ipp-strings.c:3326
 msgid "printer-state-reasons.marker-print-ribbon-empty"
 msgstr ""
 
 #. TRANSLATORS: Marker Print Ribbon Missing
-#: locale/ipp-strings.c:3290
+#: locale/ipp-strings.c:3328
 msgid "printer-state-reasons.marker-print-ribbon-missing"
 msgstr ""
 
 #. TRANSLATORS: Marker Supply Almost Empty
-#: locale/ipp-strings.c:3292
+#: locale/ipp-strings.c:3330
 msgid "printer-state-reasons.marker-supply-almost-empty"
 msgstr ""
 
 #. TRANSLATORS: Ink/toner empty
-#: locale/ipp-strings.c:3294
+#: locale/ipp-strings.c:3332
 msgid "printer-state-reasons.marker-supply-empty"
 msgstr ""
 
 #. TRANSLATORS: Ink/toner low
-#: locale/ipp-strings.c:3296
+#: locale/ipp-strings.c:3334
 msgid "printer-state-reasons.marker-supply-low"
 msgstr ""
 
 #. TRANSLATORS: Marker Supply Missing
-#: locale/ipp-strings.c:3298
+#: locale/ipp-strings.c:3336
 msgid "printer-state-reasons.marker-supply-missing"
 msgstr ""
 
 #. TRANSLATORS: Marker Toner Cartridge Missing
-#: locale/ipp-strings.c:3300
+#: locale/ipp-strings.c:3338
 msgid "printer-state-reasons.marker-toner-cartridge-missing"
 msgstr ""
 
 #. TRANSLATORS: Marker Toner Missing
-#: locale/ipp-strings.c:3302
+#: locale/ipp-strings.c:3340
 msgid "printer-state-reasons.marker-toner-missing"
 msgstr ""
 
 #. TRANSLATORS: Ink/toner waste bin almost full
-#: locale/ipp-strings.c:3304
+#: locale/ipp-strings.c:3342
 msgid "printer-state-reasons.marker-waste-almost-full"
 msgstr ""
 
 #. TRANSLATORS: Ink/toner waste bin full
-#: locale/ipp-strings.c:3306
+#: locale/ipp-strings.c:3344
 msgid "printer-state-reasons.marker-waste-full"
 msgstr ""
 
 #. TRANSLATORS: Marker Waste Ink Receptacle Almost Full
-#: locale/ipp-strings.c:3308
+#: locale/ipp-strings.c:3346
 msgid "printer-state-reasons.marker-waste-ink-receptacle-almost-full"
 msgstr ""
 
 #. TRANSLATORS: Marker Waste Ink Receptacle Full
-#: locale/ipp-strings.c:3310
+#: locale/ipp-strings.c:3348
 msgid "printer-state-reasons.marker-waste-ink-receptacle-full"
 msgstr ""
 
 #. TRANSLATORS: Marker Waste Ink Receptacle Missing
-#: locale/ipp-strings.c:3312
+#: locale/ipp-strings.c:3350
 msgid "printer-state-reasons.marker-waste-ink-receptacle-missing"
 msgstr ""
 
 #. TRANSLATORS: Marker Waste Missing
-#: locale/ipp-strings.c:3314
+#: locale/ipp-strings.c:3352
 msgid "printer-state-reasons.marker-waste-missing"
 msgstr ""
 
 #. TRANSLATORS: Marker Waste Toner Receptacle Almost Full
-#: locale/ipp-strings.c:3316
+#: locale/ipp-strings.c:3354
 msgid "printer-state-reasons.marker-waste-toner-receptacle-almost-full"
 msgstr ""
 
 #. TRANSLATORS: Marker Waste Toner Receptacle Full
-#: locale/ipp-strings.c:3318
+#: locale/ipp-strings.c:3356
 msgid "printer-state-reasons.marker-waste-toner-receptacle-full"
 msgstr ""
 
 #. TRANSLATORS: Marker Waste Toner Receptacle Missing
-#: locale/ipp-strings.c:3320
+#: locale/ipp-strings.c:3358
 msgid "printer-state-reasons.marker-waste-toner-receptacle-missing"
 msgstr ""
 
 #. TRANSLATORS: Material Empty
-#: locale/ipp-strings.c:3322
+#: locale/ipp-strings.c:3360
 msgid "printer-state-reasons.material-empty"
 msgstr ""
 
 #. TRANSLATORS: Material Low
-#: locale/ipp-strings.c:3324
+#: locale/ipp-strings.c:3362
 msgid "printer-state-reasons.material-low"
 msgstr ""
 
 #. TRANSLATORS: Material Needed
-#: locale/ipp-strings.c:3326
+#: locale/ipp-strings.c:3364
 msgid "printer-state-reasons.material-needed"
 msgstr ""
 
 #. TRANSLATORS: Media Drying
-#: locale/ipp-strings.c:3328
+#: locale/ipp-strings.c:3366
 msgid "printer-state-reasons.media-drying"
 msgstr ""
 
 #. TRANSLATORS: Paper tray is empty
-#: locale/ipp-strings.c:3330
+#: locale/ipp-strings.c:3368
 msgid "printer-state-reasons.media-empty"
 msgstr ""
 
 #. TRANSLATORS: Paper jam
-#: locale/ipp-strings.c:3332
+#: locale/ipp-strings.c:3370
 msgid "printer-state-reasons.media-jam"
 msgstr ""
 
 #. TRANSLATORS: Paper tray is almost empty
-#: locale/ipp-strings.c:3334
+#: locale/ipp-strings.c:3372
 msgid "printer-state-reasons.media-low"
 msgstr ""
 
 #. TRANSLATORS: Load paper
-#: locale/ipp-strings.c:3336
+#: locale/ipp-strings.c:3374
 msgid "printer-state-reasons.media-needed"
 msgstr ""
 
 #. TRANSLATORS: Media Path Cannot Do 2-Sided Printing
-#: locale/ipp-strings.c:3338
+#: locale/ipp-strings.c:3376
 msgid "printer-state-reasons.media-path-cannot-duplex-media-selected"
 msgstr ""
 
 #. TRANSLATORS: Media Path Failure
-#: locale/ipp-strings.c:3340
+#: locale/ipp-strings.c:3378
 msgid "printer-state-reasons.media-path-failure"
 msgstr ""
 
 #. TRANSLATORS: Media Path Input Empty
-#: locale/ipp-strings.c:3342
+#: locale/ipp-strings.c:3380
 msgid "printer-state-reasons.media-path-input-empty"
 msgstr ""
 
 #. TRANSLATORS: Media Path Input Feed Error
-#: locale/ipp-strings.c:3344
+#: locale/ipp-strings.c:3382
 msgid "printer-state-reasons.media-path-input-feed-error"
 msgstr ""
 
 #. TRANSLATORS: Media Path Input Jam
-#: locale/ipp-strings.c:3346
+#: locale/ipp-strings.c:3384
 msgid "printer-state-reasons.media-path-input-jam"
 msgstr ""
 
 #. TRANSLATORS: Media Path Input Request
-#: locale/ipp-strings.c:3348
+#: locale/ipp-strings.c:3386
 msgid "printer-state-reasons.media-path-input-request"
 msgstr ""
 
 #. TRANSLATORS: Media Path Jam
-#: locale/ipp-strings.c:3350
+#: locale/ipp-strings.c:3388
 msgid "printer-state-reasons.media-path-jam"
 msgstr ""
 
 #. TRANSLATORS: Media Path Media Tray Almost Full
-#: locale/ipp-strings.c:3352
+#: locale/ipp-strings.c:3390
 msgid "printer-state-reasons.media-path-media-tray-almost-full"
 msgstr ""
 
 #. TRANSLATORS: Media Path Media Tray Full
-#: locale/ipp-strings.c:3354
+#: locale/ipp-strings.c:3392
 msgid "printer-state-reasons.media-path-media-tray-full"
 msgstr ""
 
 #. TRANSLATORS: Media Path Media Tray Missing
-#: locale/ipp-strings.c:3356
+#: locale/ipp-strings.c:3394
 msgid "printer-state-reasons.media-path-media-tray-missing"
 msgstr ""
 
 #. TRANSLATORS: Media Path Output Feed Error
-#: locale/ipp-strings.c:3358
+#: locale/ipp-strings.c:3396
 msgid "printer-state-reasons.media-path-output-feed-error"
 msgstr ""
 
 #. TRANSLATORS: Media Path Output Full
-#: locale/ipp-strings.c:3360
+#: locale/ipp-strings.c:3398
 msgid "printer-state-reasons.media-path-output-full"
 msgstr ""
 
 #. TRANSLATORS: Media Path Output Jam
-#: locale/ipp-strings.c:3362
+#: locale/ipp-strings.c:3400
 msgid "printer-state-reasons.media-path-output-jam"
 msgstr ""
 
 #. TRANSLATORS: Media Path Pick Roller Failure
-#: locale/ipp-strings.c:3364
+#: locale/ipp-strings.c:3402
 msgid "printer-state-reasons.media-path-pick-roller-failure"
 msgstr ""
 
 #. TRANSLATORS: Media Path Pick Roller Life Over
-#: locale/ipp-strings.c:3366
+#: locale/ipp-strings.c:3404
 msgid "printer-state-reasons.media-path-pick-roller-life-over"
 msgstr ""
 
 #. TRANSLATORS: Media Path Pick Roller Life Warn
-#: locale/ipp-strings.c:3368
+#: locale/ipp-strings.c:3406
 msgid "printer-state-reasons.media-path-pick-roller-life-warn"
 msgstr ""
 
 #. TRANSLATORS: Media Path Pick Roller Missing
-#: locale/ipp-strings.c:3370
+#: locale/ipp-strings.c:3408
 msgid "printer-state-reasons.media-path-pick-roller-missing"
 msgstr ""
 
 #. TRANSLATORS: Motor Failure
-#: locale/ipp-strings.c:3372
+#: locale/ipp-strings.c:3410
 msgid "printer-state-reasons.motor-failure"
 msgstr ""
 
 #. TRANSLATORS: Printer going offline
-#: locale/ipp-strings.c:3374
+#: locale/ipp-strings.c:3412
 msgid "printer-state-reasons.moving-to-paused"
 msgstr ""
 
 #. TRANSLATORS: None
-#: locale/ipp-strings.c:3376
+#: locale/ipp-strings.c:3414
 msgid "printer-state-reasons.none"
 msgstr ""
 
 #. TRANSLATORS: Optical Photoconductor Life Over
-#: locale/ipp-strings.c:3378
+#: locale/ipp-strings.c:3416
 msgid "printer-state-reasons.opc-life-over"
 msgstr ""
 
 #. TRANSLATORS: OPC almost at end-of-life
-#: locale/ipp-strings.c:3380
+#: locale/ipp-strings.c:3418
 msgid "printer-state-reasons.opc-near-eol"
 msgstr ""
 
 #. TRANSLATORS: Check the printer for errors
-#: locale/ipp-strings.c:3382
+#: locale/ipp-strings.c:3420
 msgid "printer-state-reasons.other"
 msgstr ""
 
 #. TRANSLATORS: Output bin is almost full
-#: locale/ipp-strings.c:3384
+#: locale/ipp-strings.c:3422
 msgid "printer-state-reasons.output-area-almost-full"
 msgstr ""
 
 #. TRANSLATORS: Output bin is full
-#: locale/ipp-strings.c:3386
+#: locale/ipp-strings.c:3424
 msgid "printer-state-reasons.output-area-full"
 msgstr ""
 
 #. TRANSLATORS: Output Mailbox Select Failure
-#: locale/ipp-strings.c:3388
+#: locale/ipp-strings.c:3426
 msgid "printer-state-reasons.output-mailbox-select-failure"
 msgstr ""
 
 #. TRANSLATORS: Output Media Tray Failure
-#: locale/ipp-strings.c:3390
+#: locale/ipp-strings.c:3428
 msgid "printer-state-reasons.output-media-tray-failure"
 msgstr ""
 
 #. TRANSLATORS: Output Media Tray Feed Error
-#: locale/ipp-strings.c:3392
+#: locale/ipp-strings.c:3430
 msgid "printer-state-reasons.output-media-tray-feed-error"
 msgstr ""
 
 #. TRANSLATORS: Output Media Tray Jam
-#: locale/ipp-strings.c:3394
+#: locale/ipp-strings.c:3432
 msgid "printer-state-reasons.output-media-tray-jam"
 msgstr ""
 
 #. TRANSLATORS: Output tray is missing
-#: locale/ipp-strings.c:3396
+#: locale/ipp-strings.c:3434
 msgid "printer-state-reasons.output-tray-missing"
 msgstr ""
 
 #. TRANSLATORS: Paused
-#: locale/ipp-strings.c:3398
+#: locale/ipp-strings.c:3436
 msgid "printer-state-reasons.paused"
 msgstr ""
 
 #. TRANSLATORS: Perforater Added
-#: locale/ipp-strings.c:3400
+#: locale/ipp-strings.c:3438
 msgid "printer-state-reasons.perforater-added"
 msgstr ""
 
 #. TRANSLATORS: Perforater Almost Empty
-#: locale/ipp-strings.c:3402
+#: locale/ipp-strings.c:3440
 msgid "printer-state-reasons.perforater-almost-empty"
 msgstr ""
 
 #. TRANSLATORS: Perforater Almost Full
-#: locale/ipp-strings.c:3404
+#: locale/ipp-strings.c:3442
 msgid "printer-state-reasons.perforater-almost-full"
 msgstr ""
 
 #. TRANSLATORS: Perforater At Limit
-#: locale/ipp-strings.c:3406
+#: locale/ipp-strings.c:3444
 msgid "printer-state-reasons.perforater-at-limit"
 msgstr ""
 
 #. TRANSLATORS: Perforater Closed
-#: locale/ipp-strings.c:3408
+#: locale/ipp-strings.c:3446
 msgid "printer-state-reasons.perforater-closed"
 msgstr ""
 
 #. TRANSLATORS: Perforater Configuration Change
-#: locale/ipp-strings.c:3410
+#: locale/ipp-strings.c:3448
 msgid "printer-state-reasons.perforater-configuration-change"
 msgstr ""
 
 #. TRANSLATORS: Perforater Cover Closed
-#: locale/ipp-strings.c:3412
+#: locale/ipp-strings.c:3450
 msgid "printer-state-reasons.perforater-cover-closed"
 msgstr ""
 
 #. TRANSLATORS: Perforater Cover Open
-#: locale/ipp-strings.c:3414
+#: locale/ipp-strings.c:3452
 msgid "printer-state-reasons.perforater-cover-open"
 msgstr ""
 
 #. TRANSLATORS: Perforater Empty
-#: locale/ipp-strings.c:3416
+#: locale/ipp-strings.c:3454
 msgid "printer-state-reasons.perforater-empty"
 msgstr ""
 
 #. TRANSLATORS: Perforater Full
-#: locale/ipp-strings.c:3418
+#: locale/ipp-strings.c:3456
 msgid "printer-state-reasons.perforater-full"
 msgstr ""
 
 #. TRANSLATORS: Perforater Interlock Closed
-#: locale/ipp-strings.c:3420
+#: locale/ipp-strings.c:3458
 msgid "printer-state-reasons.perforater-interlock-closed"
 msgstr ""
 
 #. TRANSLATORS: Perforater Interlock Open
-#: locale/ipp-strings.c:3422
+#: locale/ipp-strings.c:3460
 msgid "printer-state-reasons.perforater-interlock-open"
 msgstr ""
 
 #. TRANSLATORS: Perforater Jam
-#: locale/ipp-strings.c:3424
+#: locale/ipp-strings.c:3462
 msgid "printer-state-reasons.perforater-jam"
 msgstr ""
 
 #. TRANSLATORS: Perforater Life Almost Over
-#: locale/ipp-strings.c:3426
+#: locale/ipp-strings.c:3464
 msgid "printer-state-reasons.perforater-life-almost-over"
 msgstr ""
 
 #. TRANSLATORS: Perforater Life Over
-#: locale/ipp-strings.c:3428
+#: locale/ipp-strings.c:3466
 msgid "printer-state-reasons.perforater-life-over"
 msgstr ""
 
 #. TRANSLATORS: Perforater Memory Exhausted
-#: locale/ipp-strings.c:3430
+#: locale/ipp-strings.c:3468
 msgid "printer-state-reasons.perforater-memory-exhausted"
 msgstr ""
 
 #. TRANSLATORS: Perforater Missing
-#: locale/ipp-strings.c:3432
+#: locale/ipp-strings.c:3470
 msgid "printer-state-reasons.perforater-missing"
 msgstr ""
 
 #. TRANSLATORS: Perforater Motor Failure
-#: locale/ipp-strings.c:3434
+#: locale/ipp-strings.c:3472
 msgid "printer-state-reasons.perforater-motor-failure"
 msgstr ""
 
 #. TRANSLATORS: Perforater Near Limit
-#: locale/ipp-strings.c:3436
+#: locale/ipp-strings.c:3474
 msgid "printer-state-reasons.perforater-near-limit"
 msgstr ""
 
 #. TRANSLATORS: Perforater Offline
-#: locale/ipp-strings.c:3438
+#: locale/ipp-strings.c:3476
 msgid "printer-state-reasons.perforater-offline"
 msgstr ""
 
 #. TRANSLATORS: Perforater Opened
-#: locale/ipp-strings.c:3440
+#: locale/ipp-strings.c:3478
 msgid "printer-state-reasons.perforater-opened"
 msgstr ""
 
 #. TRANSLATORS: Perforater Over Temperature
-#: locale/ipp-strings.c:3442
+#: locale/ipp-strings.c:3480
 msgid "printer-state-reasons.perforater-over-temperature"
 msgstr ""
 
 #. TRANSLATORS: Perforater Power Saver
-#: locale/ipp-strings.c:3444
+#: locale/ipp-strings.c:3482
 msgid "printer-state-reasons.perforater-power-saver"
 msgstr ""
 
 #. TRANSLATORS: Perforater Recoverable Failure
-#: locale/ipp-strings.c:3446
+#: locale/ipp-strings.c:3484
 msgid "printer-state-reasons.perforater-recoverable-failure"
 msgstr ""
 
 #. TRANSLATORS: Perforater Recoverable Storage
-#: locale/ipp-strings.c:3448
+#: locale/ipp-strings.c:3486
 msgid "printer-state-reasons.perforater-recoverable-storage"
 msgstr ""
 
 #. TRANSLATORS: Perforater Removed
-#: locale/ipp-strings.c:3450
+#: locale/ipp-strings.c:3488
 msgid "printer-state-reasons.perforater-removed"
 msgstr ""
 
 #. TRANSLATORS: Perforater Resource Added
-#: locale/ipp-strings.c:3452
+#: locale/ipp-strings.c:3490
 msgid "printer-state-reasons.perforater-resource-added"
 msgstr ""
 
 #. TRANSLATORS: Perforater Resource Removed
-#: locale/ipp-strings.c:3454
+#: locale/ipp-strings.c:3492
 msgid "printer-state-reasons.perforater-resource-removed"
 msgstr ""
 
 #. TRANSLATORS: Perforater Thermistor Failure
-#: locale/ipp-strings.c:3456
+#: locale/ipp-strings.c:3494
 msgid "printer-state-reasons.perforater-thermistor-failure"
 msgstr ""
 
 #. TRANSLATORS: Perforater Timing Failure
-#: locale/ipp-strings.c:3458
+#: locale/ipp-strings.c:3496
 msgid "printer-state-reasons.perforater-timing-failure"
 msgstr ""
 
 #. TRANSLATORS: Perforater Turned Off
-#: locale/ipp-strings.c:3460
+#: locale/ipp-strings.c:3498
 msgid "printer-state-reasons.perforater-turned-off"
 msgstr ""
 
 #. TRANSLATORS: Perforater Turned On
-#: locale/ipp-strings.c:3462
+#: locale/ipp-strings.c:3500
 msgid "printer-state-reasons.perforater-turned-on"
 msgstr ""
 
 #. TRANSLATORS: Perforater Under Temperature
-#: locale/ipp-strings.c:3464
+#: locale/ipp-strings.c:3502
 msgid "printer-state-reasons.perforater-under-temperature"
 msgstr ""
 
 #. TRANSLATORS: Perforater Unrecoverable Failure
-#: locale/ipp-strings.c:3466
+#: locale/ipp-strings.c:3504
 msgid "printer-state-reasons.perforater-unrecoverable-failure"
 msgstr ""
 
 #. TRANSLATORS: Perforater Unrecoverable Storage Error
-#: locale/ipp-strings.c:3468
+#: locale/ipp-strings.c:3506
 msgid "printer-state-reasons.perforater-unrecoverable-storage-error"
 msgstr ""
 
 #. TRANSLATORS: Perforater Warming Up
-#: locale/ipp-strings.c:3470
+#: locale/ipp-strings.c:3508
 msgid "printer-state-reasons.perforater-warming-up"
 msgstr ""
 
 #. TRANSLATORS: Platform Cooling
-#: locale/ipp-strings.c:3472
+#: locale/ipp-strings.c:3510
 msgid "printer-state-reasons.platform-cooling"
 msgstr ""
 
 #. TRANSLATORS: Platform Failure
-#: locale/ipp-strings.c:3474
+#: locale/ipp-strings.c:3512
 msgid "printer-state-reasons.platform-failure"
 msgstr ""
 
 #. TRANSLATORS: Platform Heating
-#: locale/ipp-strings.c:3476
+#: locale/ipp-strings.c:3514
 msgid "printer-state-reasons.platform-heating"
 msgstr ""
 
 #. TRANSLATORS: Platform Temperature High
-#: locale/ipp-strings.c:3478
+#: locale/ipp-strings.c:3516
 msgid "printer-state-reasons.platform-temperature-high"
 msgstr ""
 
 #. TRANSLATORS: Platform Temperature Low
-#: locale/ipp-strings.c:3480
+#: locale/ipp-strings.c:3518
 msgid "printer-state-reasons.platform-temperature-low"
 msgstr ""
 
 #. TRANSLATORS: Power Down
-#: locale/ipp-strings.c:3482
+#: locale/ipp-strings.c:3520
 msgid "printer-state-reasons.power-down"
 msgstr ""
 
 #. TRANSLATORS: Power Up
-#: locale/ipp-strings.c:3484
+#: locale/ipp-strings.c:3522
 msgid "printer-state-reasons.power-up"
 msgstr ""
 
 #. TRANSLATORS: Printer Reset Manually
-#: locale/ipp-strings.c:3486
+#: locale/ipp-strings.c:3524
 msgid "printer-state-reasons.printer-manual-reset"
 msgstr ""
 
 #. TRANSLATORS: Printer Reset Remotely
-#: locale/ipp-strings.c:3488
+#: locale/ipp-strings.c:3526
 msgid "printer-state-reasons.printer-nms-reset"
 msgstr ""
 
 #. TRANSLATORS: Printer Ready To Print
-#: locale/ipp-strings.c:3490
+#: locale/ipp-strings.c:3528
 msgid "printer-state-reasons.printer-ready-to-print"
 msgstr ""
 
 #. TRANSLATORS: Puncher Added
-#: locale/ipp-strings.c:3492
+#: locale/ipp-strings.c:3530
 msgid "printer-state-reasons.puncher-added"
 msgstr ""
 
 #. TRANSLATORS: Puncher Almost Empty
-#: locale/ipp-strings.c:3494
+#: locale/ipp-strings.c:3532
 msgid "printer-state-reasons.puncher-almost-empty"
 msgstr ""
 
 #. TRANSLATORS: Puncher Almost Full
-#: locale/ipp-strings.c:3496
+#: locale/ipp-strings.c:3534
 msgid "printer-state-reasons.puncher-almost-full"
 msgstr ""
 
 #. TRANSLATORS: Puncher At Limit
-#: locale/ipp-strings.c:3498
+#: locale/ipp-strings.c:3536
 msgid "printer-state-reasons.puncher-at-limit"
 msgstr ""
 
 #. TRANSLATORS: Puncher Closed
-#: locale/ipp-strings.c:3500
+#: locale/ipp-strings.c:3538
 msgid "printer-state-reasons.puncher-closed"
 msgstr ""
 
 #. TRANSLATORS: Puncher Configuration Change
-#: locale/ipp-strings.c:3502
+#: locale/ipp-strings.c:3540
 msgid "printer-state-reasons.puncher-configuration-change"
 msgstr ""
 
 #. TRANSLATORS: Puncher Cover Closed
-#: locale/ipp-strings.c:3504
+#: locale/ipp-strings.c:3542
 msgid "printer-state-reasons.puncher-cover-closed"
 msgstr ""
 
 #. TRANSLATORS: Puncher Cover Open
-#: locale/ipp-strings.c:3506
+#: locale/ipp-strings.c:3544
 msgid "printer-state-reasons.puncher-cover-open"
 msgstr ""
 
 #. TRANSLATORS: Puncher Empty
-#: locale/ipp-strings.c:3508
+#: locale/ipp-strings.c:3546
 msgid "printer-state-reasons.puncher-empty"
 msgstr ""
 
 #. TRANSLATORS: Puncher Full
-#: locale/ipp-strings.c:3510
+#: locale/ipp-strings.c:3548
 msgid "printer-state-reasons.puncher-full"
 msgstr ""
 
 #. TRANSLATORS: Puncher Interlock Closed
-#: locale/ipp-strings.c:3512
+#: locale/ipp-strings.c:3550
 msgid "printer-state-reasons.puncher-interlock-closed"
 msgstr ""
 
 #. TRANSLATORS: Puncher Interlock Open
-#: locale/ipp-strings.c:3514
+#: locale/ipp-strings.c:3552
 msgid "printer-state-reasons.puncher-interlock-open"
 msgstr ""
 
 #. TRANSLATORS: Puncher Jam
-#: locale/ipp-strings.c:3516
+#: locale/ipp-strings.c:3554
 msgid "printer-state-reasons.puncher-jam"
 msgstr ""
 
 #. TRANSLATORS: Puncher Life Almost Over
-#: locale/ipp-strings.c:3518
+#: locale/ipp-strings.c:3556
 msgid "printer-state-reasons.puncher-life-almost-over"
 msgstr ""
 
 #. TRANSLATORS: Puncher Life Over
-#: locale/ipp-strings.c:3520
+#: locale/ipp-strings.c:3558
 msgid "printer-state-reasons.puncher-life-over"
 msgstr ""
 
 #. TRANSLATORS: Puncher Memory Exhausted
-#: locale/ipp-strings.c:3522
+#: locale/ipp-strings.c:3560
 msgid "printer-state-reasons.puncher-memory-exhausted"
 msgstr ""
 
 #. TRANSLATORS: Puncher Missing
-#: locale/ipp-strings.c:3524
+#: locale/ipp-strings.c:3562
 msgid "printer-state-reasons.puncher-missing"
 msgstr ""
 
 #. TRANSLATORS: Puncher Motor Failure
-#: locale/ipp-strings.c:3526
+#: locale/ipp-strings.c:3564
 msgid "printer-state-reasons.puncher-motor-failure"
 msgstr ""
 
 #. TRANSLATORS: Puncher Near Limit
-#: locale/ipp-strings.c:3528
+#: locale/ipp-strings.c:3566
 msgid "printer-state-reasons.puncher-near-limit"
 msgstr ""
 
 #. TRANSLATORS: Puncher Offline
-#: locale/ipp-strings.c:3530
+#: locale/ipp-strings.c:3568
 msgid "printer-state-reasons.puncher-offline"
 msgstr ""
 
 #. TRANSLATORS: Puncher Opened
-#: locale/ipp-strings.c:3532
+#: locale/ipp-strings.c:3570
 msgid "printer-state-reasons.puncher-opened"
 msgstr ""
 
 #. TRANSLATORS: Puncher Over Temperature
-#: locale/ipp-strings.c:3534
+#: locale/ipp-strings.c:3572
 msgid "printer-state-reasons.puncher-over-temperature"
 msgstr ""
 
 #. TRANSLATORS: Puncher Power Saver
-#: locale/ipp-strings.c:3536
+#: locale/ipp-strings.c:3574
 msgid "printer-state-reasons.puncher-power-saver"
 msgstr ""
 
 #. TRANSLATORS: Puncher Recoverable Failure
-#: locale/ipp-strings.c:3538
+#: locale/ipp-strings.c:3576
 msgid "printer-state-reasons.puncher-recoverable-failure"
 msgstr ""
 
 #. TRANSLATORS: Puncher Recoverable Storage
-#: locale/ipp-strings.c:3540
+#: locale/ipp-strings.c:3578
 msgid "printer-state-reasons.puncher-recoverable-storage"
 msgstr ""
 
 #. TRANSLATORS: Puncher Removed
-#: locale/ipp-strings.c:3542
+#: locale/ipp-strings.c:3580
 msgid "printer-state-reasons.puncher-removed"
 msgstr ""
 
 #. TRANSLATORS: Puncher Resource Added
-#: locale/ipp-strings.c:3544
+#: locale/ipp-strings.c:3582
 msgid "printer-state-reasons.puncher-resource-added"
 msgstr ""
 
 #. TRANSLATORS: Puncher Resource Removed
-#: locale/ipp-strings.c:3546
+#: locale/ipp-strings.c:3584
 msgid "printer-state-reasons.puncher-resource-removed"
 msgstr ""
 
 #. TRANSLATORS: Puncher Thermistor Failure
-#: locale/ipp-strings.c:3548
+#: locale/ipp-strings.c:3586
 msgid "printer-state-reasons.puncher-thermistor-failure"
 msgstr ""
 
 #. TRANSLATORS: Puncher Timing Failure
-#: locale/ipp-strings.c:3550
+#: locale/ipp-strings.c:3588
 msgid "printer-state-reasons.puncher-timing-failure"
 msgstr ""
 
 #. TRANSLATORS: Puncher Turned Off
-#: locale/ipp-strings.c:3552
+#: locale/ipp-strings.c:3590
 msgid "printer-state-reasons.puncher-turned-off"
 msgstr ""
 
 #. TRANSLATORS: Puncher Turned On
-#: locale/ipp-strings.c:3554
+#: locale/ipp-strings.c:3592
 msgid "printer-state-reasons.puncher-turned-on"
 msgstr ""
 
 #. TRANSLATORS: Puncher Under Temperature
-#: locale/ipp-strings.c:3556
+#: locale/ipp-strings.c:3594
 msgid "printer-state-reasons.puncher-under-temperature"
 msgstr ""
 
 #. TRANSLATORS: Puncher Unrecoverable Failure
-#: locale/ipp-strings.c:3558
+#: locale/ipp-strings.c:3596
 msgid "printer-state-reasons.puncher-unrecoverable-failure"
 msgstr ""
 
 #. TRANSLATORS: Puncher Unrecoverable Storage Error
-#: locale/ipp-strings.c:3560
+#: locale/ipp-strings.c:3598
 msgid "printer-state-reasons.puncher-unrecoverable-storage-error"
 msgstr ""
 
 #. TRANSLATORS: Puncher Warming Up
-#: locale/ipp-strings.c:3562
+#: locale/ipp-strings.c:3600
 msgid "printer-state-reasons.puncher-warming-up"
 msgstr ""
 
 #. TRANSLATORS: Separation Cutter Added
-#: locale/ipp-strings.c:3564
+#: locale/ipp-strings.c:3602
 msgid "printer-state-reasons.separation-cutter-added"
 msgstr ""
 
 #. TRANSLATORS: Separation Cutter Almost Empty
-#: locale/ipp-strings.c:3566
+#: locale/ipp-strings.c:3604
 msgid "printer-state-reasons.separation-cutter-almost-empty"
 msgstr ""
 
 #. TRANSLATORS: Separation Cutter Almost Full
-#: locale/ipp-strings.c:3568
+#: locale/ipp-strings.c:3606
 msgid "printer-state-reasons.separation-cutter-almost-full"
 msgstr ""
 
 #. TRANSLATORS: Separation Cutter At Limit
-#: locale/ipp-strings.c:3570
+#: locale/ipp-strings.c:3608
 msgid "printer-state-reasons.separation-cutter-at-limit"
 msgstr ""
 
 #. TRANSLATORS: Separation Cutter Closed
-#: locale/ipp-strings.c:3572
+#: locale/ipp-strings.c:3610
 msgid "printer-state-reasons.separation-cutter-closed"
 msgstr ""
 
 #. TRANSLATORS: Separation Cutter Configuration Change
-#: locale/ipp-strings.c:3574
+#: locale/ipp-strings.c:3612
 msgid "printer-state-reasons.separation-cutter-configuration-change"
 msgstr ""
 
 #. TRANSLATORS: Separation Cutter Cover Closed
-#: locale/ipp-strings.c:3576
+#: locale/ipp-strings.c:3614
 msgid "printer-state-reasons.separation-cutter-cover-closed"
 msgstr ""
 
 #. TRANSLATORS: Separation Cutter Cover Open
-#: locale/ipp-strings.c:3578
+#: locale/ipp-strings.c:3616
 msgid "printer-state-reasons.separation-cutter-cover-open"
 msgstr ""
 
 #. TRANSLATORS: Separation Cutter Empty
-#: locale/ipp-strings.c:3580
+#: locale/ipp-strings.c:3618
 msgid "printer-state-reasons.separation-cutter-empty"
 msgstr ""
 
 #. TRANSLATORS: Separation Cutter Full
-#: locale/ipp-strings.c:3582
+#: locale/ipp-strings.c:3620
 msgid "printer-state-reasons.separation-cutter-full"
 msgstr ""
 
 #. TRANSLATORS: Separation Cutter Interlock Closed
-#: locale/ipp-strings.c:3584
+#: locale/ipp-strings.c:3622
 msgid "printer-state-reasons.separation-cutter-interlock-closed"
 msgstr ""
 
 #. TRANSLATORS: Separation Cutter Interlock Open
-#: locale/ipp-strings.c:3586
+#: locale/ipp-strings.c:3624
 msgid "printer-state-reasons.separation-cutter-interlock-open"
 msgstr ""
 
 #. TRANSLATORS: Separation Cutter Jam
-#: locale/ipp-strings.c:3588
+#: locale/ipp-strings.c:3626
 msgid "printer-state-reasons.separation-cutter-jam"
 msgstr ""
 
 #. TRANSLATORS: Separation Cutter Life Almost Over
-#: locale/ipp-strings.c:3590
+#: locale/ipp-strings.c:3628
 msgid "printer-state-reasons.separation-cutter-life-almost-over"
 msgstr ""
 
 #. TRANSLATORS: Separation Cutter Life Over
-#: locale/ipp-strings.c:3592
+#: locale/ipp-strings.c:3630
 msgid "printer-state-reasons.separation-cutter-life-over"
 msgstr ""
 
 #. TRANSLATORS: Separation Cutter Memory Exhausted
-#: locale/ipp-strings.c:3594
+#: locale/ipp-strings.c:3632
 msgid "printer-state-reasons.separation-cutter-memory-exhausted"
 msgstr ""
 
 #. TRANSLATORS: Separation Cutter Missing
-#: locale/ipp-strings.c:3596
+#: locale/ipp-strings.c:3634
 msgid "printer-state-reasons.separation-cutter-missing"
 msgstr ""
 
 #. TRANSLATORS: Separation Cutter Motor Failure
-#: locale/ipp-strings.c:3598
+#: locale/ipp-strings.c:3636
 msgid "printer-state-reasons.separation-cutter-motor-failure"
 msgstr ""
 
 #. TRANSLATORS: Separation Cutter Near Limit
-#: locale/ipp-strings.c:3600
+#: locale/ipp-strings.c:3638
 msgid "printer-state-reasons.separation-cutter-near-limit"
 msgstr ""
 
 #. TRANSLATORS: Separation Cutter Offline
-#: locale/ipp-strings.c:3602
+#: locale/ipp-strings.c:3640
 msgid "printer-state-reasons.separation-cutter-offline"
 msgstr ""
 
 #. TRANSLATORS: Separation Cutter Opened
-#: locale/ipp-strings.c:3604
+#: locale/ipp-strings.c:3642
 msgid "printer-state-reasons.separation-cutter-opened"
 msgstr ""
 
 #. TRANSLATORS: Separation Cutter Over Temperature
-#: locale/ipp-strings.c:3606
+#: locale/ipp-strings.c:3644
 msgid "printer-state-reasons.separation-cutter-over-temperature"
 msgstr ""
 
 #. TRANSLATORS: Separation Cutter Power Saver
-#: locale/ipp-strings.c:3608
+#: locale/ipp-strings.c:3646
 msgid "printer-state-reasons.separation-cutter-power-saver"
 msgstr ""
 
 #. TRANSLATORS: Separation Cutter Recoverable Failure
-#: locale/ipp-strings.c:3610
+#: locale/ipp-strings.c:3648
 msgid "printer-state-reasons.separation-cutter-recoverable-failure"
 msgstr ""
 
 #. TRANSLATORS: Separation Cutter Recoverable Storage
-#: locale/ipp-strings.c:3612
+#: locale/ipp-strings.c:3650
 msgid "printer-state-reasons.separation-cutter-recoverable-storage"
 msgstr ""
 
 #. TRANSLATORS: Separation Cutter Removed
-#: locale/ipp-strings.c:3614
+#: locale/ipp-strings.c:3652
 msgid "printer-state-reasons.separation-cutter-removed"
 msgstr ""
 
 #. TRANSLATORS: Separation Cutter Resource Added
-#: locale/ipp-strings.c:3616
+#: locale/ipp-strings.c:3654
 msgid "printer-state-reasons.separation-cutter-resource-added"
 msgstr ""
 
 #. TRANSLATORS: Separation Cutter Resource Removed
-#: locale/ipp-strings.c:3618
+#: locale/ipp-strings.c:3656
 msgid "printer-state-reasons.separation-cutter-resource-removed"
 msgstr ""
 
 #. TRANSLATORS: Separation Cutter Thermistor Failure
-#: locale/ipp-strings.c:3620
+#: locale/ipp-strings.c:3658
 msgid "printer-state-reasons.separation-cutter-thermistor-failure"
 msgstr ""
 
 #. TRANSLATORS: Separation Cutter Timing Failure
-#: locale/ipp-strings.c:3622
+#: locale/ipp-strings.c:3660
 msgid "printer-state-reasons.separation-cutter-timing-failure"
 msgstr ""
 
 #. TRANSLATORS: Separation Cutter Turned Off
-#: locale/ipp-strings.c:3624
+#: locale/ipp-strings.c:3662
 msgid "printer-state-reasons.separation-cutter-turned-off"
 msgstr ""
 
 #. TRANSLATORS: Separation Cutter Turned On
-#: locale/ipp-strings.c:3626
+#: locale/ipp-strings.c:3664
 msgid "printer-state-reasons.separation-cutter-turned-on"
 msgstr ""
 
 #. TRANSLATORS: Separation Cutter Under Temperature
-#: locale/ipp-strings.c:3628
+#: locale/ipp-strings.c:3666
 msgid "printer-state-reasons.separation-cutter-under-temperature"
 msgstr ""
 
 #. TRANSLATORS: Separation Cutter Unrecoverable Failure
-#: locale/ipp-strings.c:3630
+#: locale/ipp-strings.c:3668
 msgid "printer-state-reasons.separation-cutter-unrecoverable-failure"
 msgstr ""
 
 #. TRANSLATORS: Separation Cutter Unrecoverable Storage Error
-#: locale/ipp-strings.c:3632
+#: locale/ipp-strings.c:3670
 msgid "printer-state-reasons.separation-cutter-unrecoverable-storage-error"
 msgstr ""
 
 #. TRANSLATORS: Separation Cutter Warming Up
-#: locale/ipp-strings.c:3634
+#: locale/ipp-strings.c:3672
 msgid "printer-state-reasons.separation-cutter-warming-up"
 msgstr ""
 
 #. TRANSLATORS: Sheet Rotator Added
-#: locale/ipp-strings.c:3636
+#: locale/ipp-strings.c:3674
 msgid "printer-state-reasons.sheet-rotator-added"
 msgstr ""
 
 #. TRANSLATORS: Sheet Rotator Almost Empty
-#: locale/ipp-strings.c:3638
+#: locale/ipp-strings.c:3676
 msgid "printer-state-reasons.sheet-rotator-almost-empty"
 msgstr ""
 
 #. TRANSLATORS: Sheet Rotator Almost Full
-#: locale/ipp-strings.c:3640
+#: locale/ipp-strings.c:3678
 msgid "printer-state-reasons.sheet-rotator-almost-full"
 msgstr ""
 
 #. TRANSLATORS: Sheet Rotator At Limit
-#: locale/ipp-strings.c:3642
+#: locale/ipp-strings.c:3680
 msgid "printer-state-reasons.sheet-rotator-at-limit"
 msgstr ""
 
 #. TRANSLATORS: Sheet Rotator Closed
-#: locale/ipp-strings.c:3644
+#: locale/ipp-strings.c:3682
 msgid "printer-state-reasons.sheet-rotator-closed"
 msgstr ""
 
 #. TRANSLATORS: Sheet Rotator Configuration Change
-#: locale/ipp-strings.c:3646
+#: locale/ipp-strings.c:3684
 msgid "printer-state-reasons.sheet-rotator-configuration-change"
 msgstr ""
 
 #. TRANSLATORS: Sheet Rotator Cover Closed
-#: locale/ipp-strings.c:3648
+#: locale/ipp-strings.c:3686
 msgid "printer-state-reasons.sheet-rotator-cover-closed"
 msgstr ""
 
 #. TRANSLATORS: Sheet Rotator Cover Open
-#: locale/ipp-strings.c:3650
+#: locale/ipp-strings.c:3688
 msgid "printer-state-reasons.sheet-rotator-cover-open"
 msgstr ""
 
 #. TRANSLATORS: Sheet Rotator Empty
-#: locale/ipp-strings.c:3652
+#: locale/ipp-strings.c:3690
 msgid "printer-state-reasons.sheet-rotator-empty"
 msgstr ""
 
 #. TRANSLATORS: Sheet Rotator Full
-#: locale/ipp-strings.c:3654
+#: locale/ipp-strings.c:3692
 msgid "printer-state-reasons.sheet-rotator-full"
 msgstr ""
 
 #. TRANSLATORS: Sheet Rotator Interlock Closed
-#: locale/ipp-strings.c:3656
+#: locale/ipp-strings.c:3694
 msgid "printer-state-reasons.sheet-rotator-interlock-closed"
 msgstr ""
 
 #. TRANSLATORS: Sheet Rotator Interlock Open
-#: locale/ipp-strings.c:3658
+#: locale/ipp-strings.c:3696
 msgid "printer-state-reasons.sheet-rotator-interlock-open"
 msgstr ""
 
 #. TRANSLATORS: Sheet Rotator Jam
-#: locale/ipp-strings.c:3660
+#: locale/ipp-strings.c:3698
 msgid "printer-state-reasons.sheet-rotator-jam"
 msgstr ""
 
 #. TRANSLATORS: Sheet Rotator Life Almost Over
-#: locale/ipp-strings.c:3662
+#: locale/ipp-strings.c:3700
 msgid "printer-state-reasons.sheet-rotator-life-almost-over"
 msgstr ""
 
 #. TRANSLATORS: Sheet Rotator Life Over
-#: locale/ipp-strings.c:3664
+#: locale/ipp-strings.c:3702
 msgid "printer-state-reasons.sheet-rotator-life-over"
 msgstr ""
 
 #. TRANSLATORS: Sheet Rotator Memory Exhausted
-#: locale/ipp-strings.c:3666
+#: locale/ipp-strings.c:3704
 msgid "printer-state-reasons.sheet-rotator-memory-exhausted"
 msgstr ""
 
 #. TRANSLATORS: Sheet Rotator Missing
-#: locale/ipp-strings.c:3668
+#: locale/ipp-strings.c:3706
 msgid "printer-state-reasons.sheet-rotator-missing"
 msgstr ""
 
 #. TRANSLATORS: Sheet Rotator Motor Failure
-#: locale/ipp-strings.c:3670
+#: locale/ipp-strings.c:3708
 msgid "printer-state-reasons.sheet-rotator-motor-failure"
 msgstr ""
 
 #. TRANSLATORS: Sheet Rotator Near Limit
-#: locale/ipp-strings.c:3672
+#: locale/ipp-strings.c:3710
 msgid "printer-state-reasons.sheet-rotator-near-limit"
 msgstr ""
 
 #. TRANSLATORS: Sheet Rotator Offline
-#: locale/ipp-strings.c:3674
+#: locale/ipp-strings.c:3712
 msgid "printer-state-reasons.sheet-rotator-offline"
 msgstr ""
 
 #. TRANSLATORS: Sheet Rotator Opened
-#: locale/ipp-strings.c:3676
+#: locale/ipp-strings.c:3714
 msgid "printer-state-reasons.sheet-rotator-opened"
 msgstr ""
 
 #. TRANSLATORS: Sheet Rotator Over Temperature
-#: locale/ipp-strings.c:3678
+#: locale/ipp-strings.c:3716
 msgid "printer-state-reasons.sheet-rotator-over-temperature"
 msgstr ""
 
 #. TRANSLATORS: Sheet Rotator Power Saver
-#: locale/ipp-strings.c:3680
+#: locale/ipp-strings.c:3718
 msgid "printer-state-reasons.sheet-rotator-power-saver"
 msgstr ""
 
 #. TRANSLATORS: Sheet Rotator Recoverable Failure
-#: locale/ipp-strings.c:3682
+#: locale/ipp-strings.c:3720
 msgid "printer-state-reasons.sheet-rotator-recoverable-failure"
 msgstr ""
 
 #. TRANSLATORS: Sheet Rotator Recoverable Storage
-#: locale/ipp-strings.c:3684
+#: locale/ipp-strings.c:3722
 msgid "printer-state-reasons.sheet-rotator-recoverable-storage"
 msgstr ""
 
 #. TRANSLATORS: Sheet Rotator Removed
-#: locale/ipp-strings.c:3686
+#: locale/ipp-strings.c:3724
 msgid "printer-state-reasons.sheet-rotator-removed"
 msgstr ""
 
 #. TRANSLATORS: Sheet Rotator Resource Added
-#: locale/ipp-strings.c:3688
+#: locale/ipp-strings.c:3726
 msgid "printer-state-reasons.sheet-rotator-resource-added"
 msgstr ""
 
 #. TRANSLATORS: Sheet Rotator Resource Removed
-#: locale/ipp-strings.c:3690
+#: locale/ipp-strings.c:3728
 msgid "printer-state-reasons.sheet-rotator-resource-removed"
 msgstr ""
 
 #. TRANSLATORS: Sheet Rotator Thermistor Failure
-#: locale/ipp-strings.c:3692
+#: locale/ipp-strings.c:3730
 msgid "printer-state-reasons.sheet-rotator-thermistor-failure"
 msgstr ""
 
 #. TRANSLATORS: Sheet Rotator Timing Failure
-#: locale/ipp-strings.c:3694
+#: locale/ipp-strings.c:3732
 msgid "printer-state-reasons.sheet-rotator-timing-failure"
 msgstr ""
 
 #. TRANSLATORS: Sheet Rotator Turned Off
-#: locale/ipp-strings.c:3696
+#: locale/ipp-strings.c:3734
 msgid "printer-state-reasons.sheet-rotator-turned-off"
 msgstr ""
 
 #. TRANSLATORS: Sheet Rotator Turned On
-#: locale/ipp-strings.c:3698
+#: locale/ipp-strings.c:3736
 msgid "printer-state-reasons.sheet-rotator-turned-on"
 msgstr ""
 
 #. TRANSLATORS: Sheet Rotator Under Temperature
-#: locale/ipp-strings.c:3700
+#: locale/ipp-strings.c:3738
 msgid "printer-state-reasons.sheet-rotator-under-temperature"
 msgstr ""
 
 #. TRANSLATORS: Sheet Rotator Unrecoverable Failure
-#: locale/ipp-strings.c:3702
+#: locale/ipp-strings.c:3740
 msgid "printer-state-reasons.sheet-rotator-unrecoverable-failure"
 msgstr ""
 
 #. TRANSLATORS: Sheet Rotator Unrecoverable Storage Error
-#: locale/ipp-strings.c:3704
+#: locale/ipp-strings.c:3742
 msgid "printer-state-reasons.sheet-rotator-unrecoverable-storage-error"
 msgstr ""
 
 #. TRANSLATORS: Sheet Rotator Warming Up
-#: locale/ipp-strings.c:3706
+#: locale/ipp-strings.c:3744
 msgid "printer-state-reasons.sheet-rotator-warming-up"
 msgstr ""
 
 #. TRANSLATORS: Printer offline
-#: locale/ipp-strings.c:3708
+#: locale/ipp-strings.c:3746
 msgid "printer-state-reasons.shutdown"
 msgstr ""
 
 #. TRANSLATORS: Slitter Added
-#: locale/ipp-strings.c:3710
+#: locale/ipp-strings.c:3748
 msgid "printer-state-reasons.slitter-added"
 msgstr ""
 
 #. TRANSLATORS: Slitter Almost Empty
-#: locale/ipp-strings.c:3712
+#: locale/ipp-strings.c:3750
 msgid "printer-state-reasons.slitter-almost-empty"
 msgstr ""
 
 #. TRANSLATORS: Slitter Almost Full
-#: locale/ipp-strings.c:3714
+#: locale/ipp-strings.c:3752
 msgid "printer-state-reasons.slitter-almost-full"
 msgstr ""
 
 #. TRANSLATORS: Slitter At Limit
-#: locale/ipp-strings.c:3716
+#: locale/ipp-strings.c:3754
 msgid "printer-state-reasons.slitter-at-limit"
 msgstr ""
 
 #. TRANSLATORS: Slitter Closed
-#: locale/ipp-strings.c:3718
+#: locale/ipp-strings.c:3756
 msgid "printer-state-reasons.slitter-closed"
 msgstr ""
 
 #. TRANSLATORS: Slitter Configuration Change
-#: locale/ipp-strings.c:3720
+#: locale/ipp-strings.c:3758
 msgid "printer-state-reasons.slitter-configuration-change"
 msgstr ""
 
 #. TRANSLATORS: Slitter Cover Closed
-#: locale/ipp-strings.c:3722
+#: locale/ipp-strings.c:3760
 msgid "printer-state-reasons.slitter-cover-closed"
 msgstr ""
 
 #. TRANSLATORS: Slitter Cover Open
-#: locale/ipp-strings.c:3724
+#: locale/ipp-strings.c:3762
 msgid "printer-state-reasons.slitter-cover-open"
 msgstr ""
 
 #. TRANSLATORS: Slitter Empty
-#: locale/ipp-strings.c:3726
+#: locale/ipp-strings.c:3764
 msgid "printer-state-reasons.slitter-empty"
 msgstr ""
 
 #. TRANSLATORS: Slitter Full
-#: locale/ipp-strings.c:3728
+#: locale/ipp-strings.c:3766
 msgid "printer-state-reasons.slitter-full"
 msgstr ""
 
 #. TRANSLATORS: Slitter Interlock Closed
-#: locale/ipp-strings.c:3730
+#: locale/ipp-strings.c:3768
 msgid "printer-state-reasons.slitter-interlock-closed"
 msgstr ""
 
 #. TRANSLATORS: Slitter Interlock Open
-#: locale/ipp-strings.c:3732
+#: locale/ipp-strings.c:3770
 msgid "printer-state-reasons.slitter-interlock-open"
 msgstr ""
 
 #. TRANSLATORS: Slitter Jam
-#: locale/ipp-strings.c:3734
+#: locale/ipp-strings.c:3772
 msgid "printer-state-reasons.slitter-jam"
 msgstr ""
 
 #. TRANSLATORS: Slitter Life Almost Over
-#: locale/ipp-strings.c:3736
+#: locale/ipp-strings.c:3774
 msgid "printer-state-reasons.slitter-life-almost-over"
 msgstr ""
 
 #. TRANSLATORS: Slitter Life Over
-#: locale/ipp-strings.c:3738
+#: locale/ipp-strings.c:3776
 msgid "printer-state-reasons.slitter-life-over"
 msgstr ""
 
 #. TRANSLATORS: Slitter Memory Exhausted
-#: locale/ipp-strings.c:3740
+#: locale/ipp-strings.c:3778
 msgid "printer-state-reasons.slitter-memory-exhausted"
 msgstr ""
 
 #. TRANSLATORS: Slitter Missing
-#: locale/ipp-strings.c:3742
+#: locale/ipp-strings.c:3780
 msgid "printer-state-reasons.slitter-missing"
 msgstr ""
 
 #. TRANSLATORS: Slitter Motor Failure
-#: locale/ipp-strings.c:3744
+#: locale/ipp-strings.c:3782
 msgid "printer-state-reasons.slitter-motor-failure"
 msgstr ""
 
 #. TRANSLATORS: Slitter Near Limit
-#: locale/ipp-strings.c:3746
+#: locale/ipp-strings.c:3784
 msgid "printer-state-reasons.slitter-near-limit"
 msgstr ""
 
 #. TRANSLATORS: Slitter Offline
-#: locale/ipp-strings.c:3748
+#: locale/ipp-strings.c:3786
 msgid "printer-state-reasons.slitter-offline"
 msgstr ""
 
 #. TRANSLATORS: Slitter Opened
-#: locale/ipp-strings.c:3750
+#: locale/ipp-strings.c:3788
 msgid "printer-state-reasons.slitter-opened"
 msgstr ""
 
 #. TRANSLATORS: Slitter Over Temperature
-#: locale/ipp-strings.c:3752
+#: locale/ipp-strings.c:3790
 msgid "printer-state-reasons.slitter-over-temperature"
 msgstr ""
 
 #. TRANSLATORS: Slitter Power Saver
-#: locale/ipp-strings.c:3754
+#: locale/ipp-strings.c:3792
 msgid "printer-state-reasons.slitter-power-saver"
 msgstr ""
 
 #. TRANSLATORS: Slitter Recoverable Failure
-#: locale/ipp-strings.c:3756
+#: locale/ipp-strings.c:3794
 msgid "printer-state-reasons.slitter-recoverable-failure"
 msgstr ""
 
 #. TRANSLATORS: Slitter Recoverable Storage
-#: locale/ipp-strings.c:3758
+#: locale/ipp-strings.c:3796
 msgid "printer-state-reasons.slitter-recoverable-storage"
 msgstr ""
 
 #. TRANSLATORS: Slitter Removed
-#: locale/ipp-strings.c:3760
+#: locale/ipp-strings.c:3798
 msgid "printer-state-reasons.slitter-removed"
 msgstr ""
 
 #. TRANSLATORS: Slitter Resource Added
-#: locale/ipp-strings.c:3762
+#: locale/ipp-strings.c:3800
 msgid "printer-state-reasons.slitter-resource-added"
 msgstr ""
 
 #. TRANSLATORS: Slitter Resource Removed
-#: locale/ipp-strings.c:3764
+#: locale/ipp-strings.c:3802
 msgid "printer-state-reasons.slitter-resource-removed"
 msgstr ""
 
 #. TRANSLATORS: Slitter Thermistor Failure
-#: locale/ipp-strings.c:3766
+#: locale/ipp-strings.c:3804
 msgid "printer-state-reasons.slitter-thermistor-failure"
 msgstr ""
 
 #. TRANSLATORS: Slitter Timing Failure
-#: locale/ipp-strings.c:3768
+#: locale/ipp-strings.c:3806
 msgid "printer-state-reasons.slitter-timing-failure"
 msgstr ""
 
 #. TRANSLATORS: Slitter Turned Off
-#: locale/ipp-strings.c:3770
+#: locale/ipp-strings.c:3808
 msgid "printer-state-reasons.slitter-turned-off"
 msgstr ""
 
 #. TRANSLATORS: Slitter Turned On
-#: locale/ipp-strings.c:3772
+#: locale/ipp-strings.c:3810
 msgid "printer-state-reasons.slitter-turned-on"
 msgstr ""
 
 #. TRANSLATORS: Slitter Under Temperature
-#: locale/ipp-strings.c:3774
+#: locale/ipp-strings.c:3812
 msgid "printer-state-reasons.slitter-under-temperature"
 msgstr ""
 
 #. TRANSLATORS: Slitter Unrecoverable Failure
-#: locale/ipp-strings.c:3776
+#: locale/ipp-strings.c:3814
 msgid "printer-state-reasons.slitter-unrecoverable-failure"
 msgstr ""
 
 #. TRANSLATORS: Slitter Unrecoverable Storage Error
-#: locale/ipp-strings.c:3778
+#: locale/ipp-strings.c:3816
 msgid "printer-state-reasons.slitter-unrecoverable-storage-error"
 msgstr ""
 
 #. TRANSLATORS: Slitter Warming Up
-#: locale/ipp-strings.c:3780
+#: locale/ipp-strings.c:3818
 msgid "printer-state-reasons.slitter-warming-up"
 msgstr ""
 
 #. TRANSLATORS: Spool Area Full
-#: locale/ipp-strings.c:3782
+#: locale/ipp-strings.c:3820
 msgid "printer-state-reasons.spool-area-full"
 msgstr ""
 
 #. TRANSLATORS: Stacker Added
-#: locale/ipp-strings.c:3784
+#: locale/ipp-strings.c:3822
 msgid "printer-state-reasons.stacker-added"
 msgstr ""
 
 #. TRANSLATORS: Stacker Almost Empty
-#: locale/ipp-strings.c:3786
+#: locale/ipp-strings.c:3824
 msgid "printer-state-reasons.stacker-almost-empty"
 msgstr ""
 
 #. TRANSLATORS: Stacker Almost Full
-#: locale/ipp-strings.c:3788
+#: locale/ipp-strings.c:3826
 msgid "printer-state-reasons.stacker-almost-full"
 msgstr ""
 
 #. TRANSLATORS: Stacker At Limit
-#: locale/ipp-strings.c:3790
+#: locale/ipp-strings.c:3828
 msgid "printer-state-reasons.stacker-at-limit"
 msgstr ""
 
 #. TRANSLATORS: Stacker Closed
-#: locale/ipp-strings.c:3792
+#: locale/ipp-strings.c:3830
 msgid "printer-state-reasons.stacker-closed"
 msgstr ""
 
 #. TRANSLATORS: Stacker Configuration Change
-#: locale/ipp-strings.c:3794
+#: locale/ipp-strings.c:3832
 msgid "printer-state-reasons.stacker-configuration-change"
 msgstr ""
 
 #. TRANSLATORS: Stacker Cover Closed
-#: locale/ipp-strings.c:3796
+#: locale/ipp-strings.c:3834
 msgid "printer-state-reasons.stacker-cover-closed"
 msgstr ""
 
 #. TRANSLATORS: Stacker Cover Open
-#: locale/ipp-strings.c:3798
+#: locale/ipp-strings.c:3836
 msgid "printer-state-reasons.stacker-cover-open"
 msgstr ""
 
 #. TRANSLATORS: Stacker Empty
-#: locale/ipp-strings.c:3800
+#: locale/ipp-strings.c:3838
 msgid "printer-state-reasons.stacker-empty"
 msgstr ""
 
 #. TRANSLATORS: Stacker Full
-#: locale/ipp-strings.c:3802
+#: locale/ipp-strings.c:3840
 msgid "printer-state-reasons.stacker-full"
 msgstr ""
 
 #. TRANSLATORS: Stacker Interlock Closed
-#: locale/ipp-strings.c:3804
+#: locale/ipp-strings.c:3842
 msgid "printer-state-reasons.stacker-interlock-closed"
 msgstr ""
 
 #. TRANSLATORS: Stacker Interlock Open
-#: locale/ipp-strings.c:3806
+#: locale/ipp-strings.c:3844
 msgid "printer-state-reasons.stacker-interlock-open"
 msgstr ""
 
 #. TRANSLATORS: Stacker Jam
-#: locale/ipp-strings.c:3808
+#: locale/ipp-strings.c:3846
 msgid "printer-state-reasons.stacker-jam"
 msgstr ""
 
 #. TRANSLATORS: Stacker Life Almost Over
-#: locale/ipp-strings.c:3810
+#: locale/ipp-strings.c:3848
 msgid "printer-state-reasons.stacker-life-almost-over"
 msgstr ""
 
 #. TRANSLATORS: Stacker Life Over
-#: locale/ipp-strings.c:3812
+#: locale/ipp-strings.c:3850
 msgid "printer-state-reasons.stacker-life-over"
 msgstr ""
 
 #. TRANSLATORS: Stacker Memory Exhausted
-#: locale/ipp-strings.c:3814
+#: locale/ipp-strings.c:3852
 msgid "printer-state-reasons.stacker-memory-exhausted"
 msgstr ""
 
 #. TRANSLATORS: Stacker Missing
-#: locale/ipp-strings.c:3816
+#: locale/ipp-strings.c:3854
 msgid "printer-state-reasons.stacker-missing"
 msgstr ""
 
 #. TRANSLATORS: Stacker Motor Failure
-#: locale/ipp-strings.c:3818
+#: locale/ipp-strings.c:3856
 msgid "printer-state-reasons.stacker-motor-failure"
 msgstr ""
 
 #. TRANSLATORS: Stacker Near Limit
-#: locale/ipp-strings.c:3820
+#: locale/ipp-strings.c:3858
 msgid "printer-state-reasons.stacker-near-limit"
 msgstr ""
 
 #. TRANSLATORS: Stacker Offline
-#: locale/ipp-strings.c:3822
+#: locale/ipp-strings.c:3860
 msgid "printer-state-reasons.stacker-offline"
 msgstr ""
 
 #. TRANSLATORS: Stacker Opened
-#: locale/ipp-strings.c:3824
+#: locale/ipp-strings.c:3862
 msgid "printer-state-reasons.stacker-opened"
 msgstr ""
 
 #. TRANSLATORS: Stacker Over Temperature
-#: locale/ipp-strings.c:3826
+#: locale/ipp-strings.c:3864
 msgid "printer-state-reasons.stacker-over-temperature"
 msgstr ""
 
 #. TRANSLATORS: Stacker Power Saver
-#: locale/ipp-strings.c:3828
+#: locale/ipp-strings.c:3866
 msgid "printer-state-reasons.stacker-power-saver"
 msgstr ""
 
 #. TRANSLATORS: Stacker Recoverable Failure
-#: locale/ipp-strings.c:3830
+#: locale/ipp-strings.c:3868
 msgid "printer-state-reasons.stacker-recoverable-failure"
 msgstr ""
 
 #. TRANSLATORS: Stacker Recoverable Storage
-#: locale/ipp-strings.c:3832
+#: locale/ipp-strings.c:3870
 msgid "printer-state-reasons.stacker-recoverable-storage"
 msgstr ""
 
 #. TRANSLATORS: Stacker Removed
-#: locale/ipp-strings.c:3834
+#: locale/ipp-strings.c:3872
 msgid "printer-state-reasons.stacker-removed"
 msgstr ""
 
 #. TRANSLATORS: Stacker Resource Added
-#: locale/ipp-strings.c:3836
+#: locale/ipp-strings.c:3874
 msgid "printer-state-reasons.stacker-resource-added"
 msgstr ""
 
 #. TRANSLATORS: Stacker Resource Removed
-#: locale/ipp-strings.c:3838
+#: locale/ipp-strings.c:3876
 msgid "printer-state-reasons.stacker-resource-removed"
 msgstr ""
 
 #. TRANSLATORS: Stacker Thermistor Failure
-#: locale/ipp-strings.c:3840
+#: locale/ipp-strings.c:3878
 msgid "printer-state-reasons.stacker-thermistor-failure"
 msgstr ""
 
 #. TRANSLATORS: Stacker Timing Failure
-#: locale/ipp-strings.c:3842
+#: locale/ipp-strings.c:3880
 msgid "printer-state-reasons.stacker-timing-failure"
 msgstr ""
 
 #. TRANSLATORS: Stacker Turned Off
-#: locale/ipp-strings.c:3844
+#: locale/ipp-strings.c:3882
 msgid "printer-state-reasons.stacker-turned-off"
 msgstr ""
 
 #. TRANSLATORS: Stacker Turned On
-#: locale/ipp-strings.c:3846
+#: locale/ipp-strings.c:3884
 msgid "printer-state-reasons.stacker-turned-on"
 msgstr ""
 
 #. TRANSLATORS: Stacker Under Temperature
-#: locale/ipp-strings.c:3848
+#: locale/ipp-strings.c:3886
 msgid "printer-state-reasons.stacker-under-temperature"
 msgstr ""
 
 #. TRANSLATORS: Stacker Unrecoverable Failure
-#: locale/ipp-strings.c:3850
+#: locale/ipp-strings.c:3888
 msgid "printer-state-reasons.stacker-unrecoverable-failure"
 msgstr ""
 
 #. TRANSLATORS: Stacker Unrecoverable Storage Error
-#: locale/ipp-strings.c:3852
+#: locale/ipp-strings.c:3890
 msgid "printer-state-reasons.stacker-unrecoverable-storage-error"
 msgstr ""
 
 #. TRANSLATORS: Stacker Warming Up
-#: locale/ipp-strings.c:3854
+#: locale/ipp-strings.c:3892
 msgid "printer-state-reasons.stacker-warming-up"
 msgstr ""
 
 #. TRANSLATORS: Stapler Added
-#: locale/ipp-strings.c:3856
+#: locale/ipp-strings.c:3894
 msgid "printer-state-reasons.stapler-added"
 msgstr ""
 
 #. TRANSLATORS: Stapler Almost Empty
-#: locale/ipp-strings.c:3858
+#: locale/ipp-strings.c:3896
 msgid "printer-state-reasons.stapler-almost-empty"
 msgstr ""
 
 #. TRANSLATORS: Stapler Almost Full
-#: locale/ipp-strings.c:3860
+#: locale/ipp-strings.c:3898
 msgid "printer-state-reasons.stapler-almost-full"
 msgstr ""
 
 #. TRANSLATORS: Stapler At Limit
-#: locale/ipp-strings.c:3862
+#: locale/ipp-strings.c:3900
 msgid "printer-state-reasons.stapler-at-limit"
 msgstr ""
 
 #. TRANSLATORS: Stapler Closed
-#: locale/ipp-strings.c:3864
+#: locale/ipp-strings.c:3902
 msgid "printer-state-reasons.stapler-closed"
 msgstr ""
 
 #. TRANSLATORS: Stapler Configuration Change
-#: locale/ipp-strings.c:3866
+#: locale/ipp-strings.c:3904
 msgid "printer-state-reasons.stapler-configuration-change"
 msgstr ""
 
 #. TRANSLATORS: Stapler Cover Closed
-#: locale/ipp-strings.c:3868
+#: locale/ipp-strings.c:3906
 msgid "printer-state-reasons.stapler-cover-closed"
 msgstr ""
 
 #. TRANSLATORS: Stapler Cover Open
-#: locale/ipp-strings.c:3870
+#: locale/ipp-strings.c:3908
 msgid "printer-state-reasons.stapler-cover-open"
 msgstr ""
 
 #. TRANSLATORS: Stapler Empty
-#: locale/ipp-strings.c:3872
+#: locale/ipp-strings.c:3910
 msgid "printer-state-reasons.stapler-empty"
 msgstr ""
 
 #. TRANSLATORS: Stapler Full
-#: locale/ipp-strings.c:3874
+#: locale/ipp-strings.c:3912
 msgid "printer-state-reasons.stapler-full"
 msgstr ""
 
 #. TRANSLATORS: Stapler Interlock Closed
-#: locale/ipp-strings.c:3876
+#: locale/ipp-strings.c:3914
 msgid "printer-state-reasons.stapler-interlock-closed"
 msgstr ""
 
 #. TRANSLATORS: Stapler Interlock Open
-#: locale/ipp-strings.c:3878
+#: locale/ipp-strings.c:3916
 msgid "printer-state-reasons.stapler-interlock-open"
 msgstr ""
 
 #. TRANSLATORS: Stapler Jam
-#: locale/ipp-strings.c:3880
+#: locale/ipp-strings.c:3918
 msgid "printer-state-reasons.stapler-jam"
 msgstr ""
 
 #. TRANSLATORS: Stapler Life Almost Over
-#: locale/ipp-strings.c:3882
+#: locale/ipp-strings.c:3920
 msgid "printer-state-reasons.stapler-life-almost-over"
 msgstr ""
 
 #. TRANSLATORS: Stapler Life Over
-#: locale/ipp-strings.c:3884
+#: locale/ipp-strings.c:3922
 msgid "printer-state-reasons.stapler-life-over"
 msgstr ""
 
 #. TRANSLATORS: Stapler Memory Exhausted
-#: locale/ipp-strings.c:3886
+#: locale/ipp-strings.c:3924
 msgid "printer-state-reasons.stapler-memory-exhausted"
 msgstr ""
 
 #. TRANSLATORS: Stapler Missing
-#: locale/ipp-strings.c:3888
+#: locale/ipp-strings.c:3926
 msgid "printer-state-reasons.stapler-missing"
 msgstr ""
 
 #. TRANSLATORS: Stapler Motor Failure
-#: locale/ipp-strings.c:3890
+#: locale/ipp-strings.c:3928
 msgid "printer-state-reasons.stapler-motor-failure"
 msgstr ""
 
 #. TRANSLATORS: Stapler Near Limit
-#: locale/ipp-strings.c:3892
+#: locale/ipp-strings.c:3930
 msgid "printer-state-reasons.stapler-near-limit"
 msgstr ""
 
 #. TRANSLATORS: Stapler Offline
-#: locale/ipp-strings.c:3894
+#: locale/ipp-strings.c:3932
 msgid "printer-state-reasons.stapler-offline"
 msgstr ""
 
 #. TRANSLATORS: Stapler Opened
-#: locale/ipp-strings.c:3896
+#: locale/ipp-strings.c:3934
 msgid "printer-state-reasons.stapler-opened"
 msgstr ""
 
 #. TRANSLATORS: Stapler Over Temperature
-#: locale/ipp-strings.c:3898
+#: locale/ipp-strings.c:3936
 msgid "printer-state-reasons.stapler-over-temperature"
 msgstr ""
 
 #. TRANSLATORS: Stapler Power Saver
-#: locale/ipp-strings.c:3900
+#: locale/ipp-strings.c:3938
 msgid "printer-state-reasons.stapler-power-saver"
 msgstr ""
 
 #. TRANSLATORS: Stapler Recoverable Failure
-#: locale/ipp-strings.c:3902
+#: locale/ipp-strings.c:3940
 msgid "printer-state-reasons.stapler-recoverable-failure"
 msgstr ""
 
 #. TRANSLATORS: Stapler Recoverable Storage
-#: locale/ipp-strings.c:3904
+#: locale/ipp-strings.c:3942
 msgid "printer-state-reasons.stapler-recoverable-storage"
 msgstr ""
 
 #. TRANSLATORS: Stapler Removed
-#: locale/ipp-strings.c:3906
+#: locale/ipp-strings.c:3944
 msgid "printer-state-reasons.stapler-removed"
 msgstr ""
 
 #. TRANSLATORS: Stapler Resource Added
-#: locale/ipp-strings.c:3908
+#: locale/ipp-strings.c:3946
 msgid "printer-state-reasons.stapler-resource-added"
 msgstr ""
 
 #. TRANSLATORS: Stapler Resource Removed
-#: locale/ipp-strings.c:3910
+#: locale/ipp-strings.c:3948
 msgid "printer-state-reasons.stapler-resource-removed"
 msgstr ""
 
 #. TRANSLATORS: Stapler Thermistor Failure
-#: locale/ipp-strings.c:3912
+#: locale/ipp-strings.c:3950
 msgid "printer-state-reasons.stapler-thermistor-failure"
 msgstr ""
 
 #. TRANSLATORS: Stapler Timing Failure
-#: locale/ipp-strings.c:3914
+#: locale/ipp-strings.c:3952
 msgid "printer-state-reasons.stapler-timing-failure"
 msgstr ""
 
 #. TRANSLATORS: Stapler Turned Off
-#: locale/ipp-strings.c:3916
+#: locale/ipp-strings.c:3954
 msgid "printer-state-reasons.stapler-turned-off"
 msgstr ""
 
 #. TRANSLATORS: Stapler Turned On
-#: locale/ipp-strings.c:3918
+#: locale/ipp-strings.c:3956
 msgid "printer-state-reasons.stapler-turned-on"
 msgstr ""
 
 #. TRANSLATORS: Stapler Under Temperature
-#: locale/ipp-strings.c:3920
+#: locale/ipp-strings.c:3958
 msgid "printer-state-reasons.stapler-under-temperature"
 msgstr ""
 
 #. TRANSLATORS: Stapler Unrecoverable Failure
-#: locale/ipp-strings.c:3922
+#: locale/ipp-strings.c:3960
 msgid "printer-state-reasons.stapler-unrecoverable-failure"
 msgstr ""
 
 #. TRANSLATORS: Stapler Unrecoverable Storage Error
-#: locale/ipp-strings.c:3924
+#: locale/ipp-strings.c:3962
 msgid "printer-state-reasons.stapler-unrecoverable-storage-error"
 msgstr ""
 
 #. TRANSLATORS: Stapler Warming Up
-#: locale/ipp-strings.c:3926
+#: locale/ipp-strings.c:3964
 msgid "printer-state-reasons.stapler-warming-up"
 msgstr ""
 
 #. TRANSLATORS: Stitcher Added
-#: locale/ipp-strings.c:3928
+#: locale/ipp-strings.c:3966
 msgid "printer-state-reasons.stitcher-added"
 msgstr ""
 
 #. TRANSLATORS: Stitcher Almost Empty
-#: locale/ipp-strings.c:3930
+#: locale/ipp-strings.c:3968
 msgid "printer-state-reasons.stitcher-almost-empty"
 msgstr ""
 
 #. TRANSLATORS: Stitcher Almost Full
-#: locale/ipp-strings.c:3932
+#: locale/ipp-strings.c:3970
 msgid "printer-state-reasons.stitcher-almost-full"
 msgstr ""
 
 #. TRANSLATORS: Stitcher At Limit
-#: locale/ipp-strings.c:3934
+#: locale/ipp-strings.c:3972
 msgid "printer-state-reasons.stitcher-at-limit"
 msgstr ""
 
 #. TRANSLATORS: Stitcher Closed
-#: locale/ipp-strings.c:3936
+#: locale/ipp-strings.c:3974
 msgid "printer-state-reasons.stitcher-closed"
 msgstr ""
 
 #. TRANSLATORS: Stitcher Configuration Change
-#: locale/ipp-strings.c:3938
+#: locale/ipp-strings.c:3976
 msgid "printer-state-reasons.stitcher-configuration-change"
 msgstr ""
 
 #. TRANSLATORS: Stitcher Cover Closed
-#: locale/ipp-strings.c:3940
+#: locale/ipp-strings.c:3978
 msgid "printer-state-reasons.stitcher-cover-closed"
 msgstr ""
 
 #. TRANSLATORS: Stitcher Cover Open
-#: locale/ipp-strings.c:3942
+#: locale/ipp-strings.c:3980
 msgid "printer-state-reasons.stitcher-cover-open"
 msgstr ""
 
 #. TRANSLATORS: Stitcher Empty
-#: locale/ipp-strings.c:3944
+#: locale/ipp-strings.c:3982
 msgid "printer-state-reasons.stitcher-empty"
 msgstr ""
 
 #. TRANSLATORS: Stitcher Full
-#: locale/ipp-strings.c:3946
+#: locale/ipp-strings.c:3984
 msgid "printer-state-reasons.stitcher-full"
 msgstr ""
 
 #. TRANSLATORS: Stitcher Interlock Closed
-#: locale/ipp-strings.c:3948
+#: locale/ipp-strings.c:3986
 msgid "printer-state-reasons.stitcher-interlock-closed"
 msgstr ""
 
 #. TRANSLATORS: Stitcher Interlock Open
-#: locale/ipp-strings.c:3950
+#: locale/ipp-strings.c:3988
 msgid "printer-state-reasons.stitcher-interlock-open"
 msgstr ""
 
 #. TRANSLATORS: Stitcher Jam
-#: locale/ipp-strings.c:3952
+#: locale/ipp-strings.c:3990
 msgid "printer-state-reasons.stitcher-jam"
 msgstr ""
 
 #. TRANSLATORS: Stitcher Life Almost Over
-#: locale/ipp-strings.c:3954
+#: locale/ipp-strings.c:3992
 msgid "printer-state-reasons.stitcher-life-almost-over"
 msgstr ""
 
 #. TRANSLATORS: Stitcher Life Over
-#: locale/ipp-strings.c:3956
+#: locale/ipp-strings.c:3994
 msgid "printer-state-reasons.stitcher-life-over"
 msgstr ""
 
 #. TRANSLATORS: Stitcher Memory Exhausted
-#: locale/ipp-strings.c:3958
+#: locale/ipp-strings.c:3996
 msgid "printer-state-reasons.stitcher-memory-exhausted"
 msgstr ""
 
 #. TRANSLATORS: Stitcher Missing
-#: locale/ipp-strings.c:3960
+#: locale/ipp-strings.c:3998
 msgid "printer-state-reasons.stitcher-missing"
 msgstr ""
 
 #. TRANSLATORS: Stitcher Motor Failure
-#: locale/ipp-strings.c:3962
+#: locale/ipp-strings.c:4000
 msgid "printer-state-reasons.stitcher-motor-failure"
 msgstr ""
 
 #. TRANSLATORS: Stitcher Near Limit
-#: locale/ipp-strings.c:3964
+#: locale/ipp-strings.c:4002
 msgid "printer-state-reasons.stitcher-near-limit"
 msgstr ""
 
 #. TRANSLATORS: Stitcher Offline
-#: locale/ipp-strings.c:3966
+#: locale/ipp-strings.c:4004
 msgid "printer-state-reasons.stitcher-offline"
 msgstr ""
 
 #. TRANSLATORS: Stitcher Opened
-#: locale/ipp-strings.c:3968
+#: locale/ipp-strings.c:4006
 msgid "printer-state-reasons.stitcher-opened"
 msgstr ""
 
 #. TRANSLATORS: Stitcher Over Temperature
-#: locale/ipp-strings.c:3970
+#: locale/ipp-strings.c:4008
 msgid "printer-state-reasons.stitcher-over-temperature"
 msgstr ""
 
 #. TRANSLATORS: Stitcher Power Saver
-#: locale/ipp-strings.c:3972
+#: locale/ipp-strings.c:4010
 msgid "printer-state-reasons.stitcher-power-saver"
 msgstr ""
 
 #. TRANSLATORS: Stitcher Recoverable Failure
-#: locale/ipp-strings.c:3974
+#: locale/ipp-strings.c:4012
 msgid "printer-state-reasons.stitcher-recoverable-failure"
 msgstr ""
 
 #. TRANSLATORS: Stitcher Recoverable Storage
-#: locale/ipp-strings.c:3976
+#: locale/ipp-strings.c:4014
 msgid "printer-state-reasons.stitcher-recoverable-storage"
 msgstr ""
 
 #. TRANSLATORS: Stitcher Removed
-#: locale/ipp-strings.c:3978
+#: locale/ipp-strings.c:4016
 msgid "printer-state-reasons.stitcher-removed"
 msgstr ""
 
 #. TRANSLATORS: Stitcher Resource Added
-#: locale/ipp-strings.c:3980
+#: locale/ipp-strings.c:4018
 msgid "printer-state-reasons.stitcher-resource-added"
 msgstr ""
 
 #. TRANSLATORS: Stitcher Resource Removed
-#: locale/ipp-strings.c:3982
+#: locale/ipp-strings.c:4020
 msgid "printer-state-reasons.stitcher-resource-removed"
 msgstr ""
 
 #. TRANSLATORS: Stitcher Thermistor Failure
-#: locale/ipp-strings.c:3984
+#: locale/ipp-strings.c:4022
 msgid "printer-state-reasons.stitcher-thermistor-failure"
 msgstr ""
 
 #. TRANSLATORS: Stitcher Timing Failure
-#: locale/ipp-strings.c:3986
+#: locale/ipp-strings.c:4024
 msgid "printer-state-reasons.stitcher-timing-failure"
 msgstr ""
 
 #. TRANSLATORS: Stitcher Turned Off
-#: locale/ipp-strings.c:3988
+#: locale/ipp-strings.c:4026
 msgid "printer-state-reasons.stitcher-turned-off"
 msgstr ""
 
 #. TRANSLATORS: Stitcher Turned On
-#: locale/ipp-strings.c:3990
+#: locale/ipp-strings.c:4028
 msgid "printer-state-reasons.stitcher-turned-on"
 msgstr ""
 
 #. TRANSLATORS: Stitcher Under Temperature
-#: locale/ipp-strings.c:3992
+#: locale/ipp-strings.c:4030
 msgid "printer-state-reasons.stitcher-under-temperature"
 msgstr ""
 
 #. TRANSLATORS: Stitcher Unrecoverable Failure
-#: locale/ipp-strings.c:3994
+#: locale/ipp-strings.c:4032
 msgid "printer-state-reasons.stitcher-unrecoverable-failure"
 msgstr ""
 
 #. TRANSLATORS: Stitcher Unrecoverable Storage Error
-#: locale/ipp-strings.c:3996
+#: locale/ipp-strings.c:4034
 msgid "printer-state-reasons.stitcher-unrecoverable-storage-error"
 msgstr ""
 
 #. TRANSLATORS: Stitcher Warming Up
-#: locale/ipp-strings.c:3998
+#: locale/ipp-strings.c:4036
 msgid "printer-state-reasons.stitcher-warming-up"
 msgstr ""
 
 #. TRANSLATORS: Partially stopped
-#: locale/ipp-strings.c:4000
+#: locale/ipp-strings.c:4038
 msgid "printer-state-reasons.stopped-partly"
 msgstr ""
 
 #. TRANSLATORS: Stopping
-#: locale/ipp-strings.c:4002
+#: locale/ipp-strings.c:4040
 msgid "printer-state-reasons.stopping"
 msgstr ""
 
 #. TRANSLATORS: Subunit Added
-#: locale/ipp-strings.c:4004
+#: locale/ipp-strings.c:4042
 msgid "printer-state-reasons.subunit-added"
 msgstr ""
 
 #. TRANSLATORS: Subunit Almost Empty
-#: locale/ipp-strings.c:4006
+#: locale/ipp-strings.c:4044
 msgid "printer-state-reasons.subunit-almost-empty"
 msgstr ""
 
 #. TRANSLATORS: Subunit Almost Full
-#: locale/ipp-strings.c:4008
+#: locale/ipp-strings.c:4046
 msgid "printer-state-reasons.subunit-almost-full"
 msgstr ""
 
 #. TRANSLATORS: Subunit At Limit
-#: locale/ipp-strings.c:4010
+#: locale/ipp-strings.c:4048
 msgid "printer-state-reasons.subunit-at-limit"
 msgstr ""
 
 #. TRANSLATORS: Subunit Closed
-#: locale/ipp-strings.c:4012
+#: locale/ipp-strings.c:4050
 msgid "printer-state-reasons.subunit-closed"
 msgstr ""
 
 #. TRANSLATORS: Subunit Cooling Down
-#: locale/ipp-strings.c:4014
+#: locale/ipp-strings.c:4052
 msgid "printer-state-reasons.subunit-cooling-down"
 msgstr ""
 
 #. TRANSLATORS: Subunit Empty
-#: locale/ipp-strings.c:4016
+#: locale/ipp-strings.c:4054
 msgid "printer-state-reasons.subunit-empty"
 msgstr ""
 
 #. TRANSLATORS: Subunit Full
-#: locale/ipp-strings.c:4018
+#: locale/ipp-strings.c:4056
 msgid "printer-state-reasons.subunit-full"
 msgstr ""
 
 #. TRANSLATORS: Subunit Life Almost Over
-#: locale/ipp-strings.c:4020
+#: locale/ipp-strings.c:4058
 msgid "printer-state-reasons.subunit-life-almost-over"
 msgstr ""
 
 #. TRANSLATORS: Subunit Life Over
-#: locale/ipp-strings.c:4022
+#: locale/ipp-strings.c:4060
 msgid "printer-state-reasons.subunit-life-over"
 msgstr ""
 
 #. TRANSLATORS: Subunit Memory Exhausted
-#: locale/ipp-strings.c:4024
+#: locale/ipp-strings.c:4062
 msgid "printer-state-reasons.subunit-memory-exhausted"
 msgstr ""
 
 #. TRANSLATORS: Subunit Missing
-#: locale/ipp-strings.c:4026
+#: locale/ipp-strings.c:4064
 msgid "printer-state-reasons.subunit-missing"
 msgstr ""
 
 #. TRANSLATORS: Subunit Motor Failure
-#: locale/ipp-strings.c:4028
+#: locale/ipp-strings.c:4066
 msgid "printer-state-reasons.subunit-motor-failure"
 msgstr ""
 
 #. TRANSLATORS: Subunit Near Limit
-#: locale/ipp-strings.c:4030
+#: locale/ipp-strings.c:4068
 msgid "printer-state-reasons.subunit-near-limit"
 msgstr ""
 
 #. TRANSLATORS: Subunit Offline
-#: locale/ipp-strings.c:4032
+#: locale/ipp-strings.c:4070
 msgid "printer-state-reasons.subunit-offline"
 msgstr ""
 
 #. TRANSLATORS: Subunit Opened
-#: locale/ipp-strings.c:4034
+#: locale/ipp-strings.c:4072
 msgid "printer-state-reasons.subunit-opened"
 msgstr ""
 
 #. TRANSLATORS: Subunit Over Temperature
-#: locale/ipp-strings.c:4036
+#: locale/ipp-strings.c:4074
 msgid "printer-state-reasons.subunit-over-temperature"
 msgstr ""
 
 #. TRANSLATORS: Subunit Power Saver
-#: locale/ipp-strings.c:4038
+#: locale/ipp-strings.c:4076
 msgid "printer-state-reasons.subunit-power-saver"
 msgstr ""
 
 #. TRANSLATORS: Subunit Recoverable Failure
-#: locale/ipp-strings.c:4040
+#: locale/ipp-strings.c:4078
 msgid "printer-state-reasons.subunit-recoverable-failure"
 msgstr ""
 
 #. TRANSLATORS: Subunit Recoverable Storage
-#: locale/ipp-strings.c:4042
+#: locale/ipp-strings.c:4080
 msgid "printer-state-reasons.subunit-recoverable-storage"
 msgstr ""
 
 #. TRANSLATORS: Subunit Removed
-#: locale/ipp-strings.c:4044
+#: locale/ipp-strings.c:4082
 msgid "printer-state-reasons.subunit-removed"
 msgstr ""
 
 #. TRANSLATORS: Subunit Resource Added
-#: locale/ipp-strings.c:4046
+#: locale/ipp-strings.c:4084
 msgid "printer-state-reasons.subunit-resource-added"
 msgstr ""
 
 #. TRANSLATORS: Subunit Resource Removed
-#: locale/ipp-strings.c:4048
+#: locale/ipp-strings.c:4086
 msgid "printer-state-reasons.subunit-resource-removed"
 msgstr ""
 
 #. TRANSLATORS: Subunit Thermistor Failure
-#: locale/ipp-strings.c:4050
+#: locale/ipp-strings.c:4088
 msgid "printer-state-reasons.subunit-thermistor-failure"
 msgstr ""
 
 #. TRANSLATORS: Subunit Timing Failure
-#: locale/ipp-strings.c:4052
+#: locale/ipp-strings.c:4090
 msgid "printer-state-reasons.subunit-timing-Failure"
 msgstr ""
 
 #. TRANSLATORS: Subunit Turned Off
-#: locale/ipp-strings.c:4054
+#: locale/ipp-strings.c:4092
 msgid "printer-state-reasons.subunit-turned-off"
 msgstr ""
 
 #. TRANSLATORS: Subunit Turned On
-#: locale/ipp-strings.c:4056
+#: locale/ipp-strings.c:4094
 msgid "printer-state-reasons.subunit-turned-on"
 msgstr ""
 
 #. TRANSLATORS: Subunit Under Temperature
-#: locale/ipp-strings.c:4058
+#: locale/ipp-strings.c:4096
 msgid "printer-state-reasons.subunit-under-temperature"
 msgstr ""
 
 #. TRANSLATORS: Subunit Unrecoverable Failure
-#: locale/ipp-strings.c:4060
+#: locale/ipp-strings.c:4098
 msgid "printer-state-reasons.subunit-unrecoverable-failure"
 msgstr ""
 
 #. TRANSLATORS: Subunit Unrecoverable Storage
-#: locale/ipp-strings.c:4062
+#: locale/ipp-strings.c:4100
 msgid "printer-state-reasons.subunit-unrecoverable-storage"
 msgstr ""
 
 #. TRANSLATORS: Subunit Warming Up
-#: locale/ipp-strings.c:4064
+#: locale/ipp-strings.c:4102
 msgid "printer-state-reasons.subunit-warming-up"
 msgstr ""
 
 #. TRANSLATORS: Printer stopped responding
-#: locale/ipp-strings.c:4066
+#: locale/ipp-strings.c:4104
 msgid "printer-state-reasons.timed-out"
 msgstr ""
 
 #. TRANSLATORS: Out of toner
-#: locale/ipp-strings.c:4068
+#: locale/ipp-strings.c:4106
 msgid "printer-state-reasons.toner-empty"
 msgstr ""
 
 #. TRANSLATORS: Toner low
-#: locale/ipp-strings.c:4070
+#: locale/ipp-strings.c:4108
 msgid "printer-state-reasons.toner-low"
 msgstr ""
 
 #. TRANSLATORS: Trimmer Added
-#: locale/ipp-strings.c:4072
+#: locale/ipp-strings.c:4110
 msgid "printer-state-reasons.trimmer-added"
 msgstr ""
 
 #. TRANSLATORS: Trimmer Almost Empty
-#: locale/ipp-strings.c:4074
+#: locale/ipp-strings.c:4112
 msgid "printer-state-reasons.trimmer-almost-empty"
 msgstr ""
 
 #. TRANSLATORS: Trimmer Almost Full
-#: locale/ipp-strings.c:4076
+#: locale/ipp-strings.c:4114
 msgid "printer-state-reasons.trimmer-almost-full"
 msgstr ""
 
 #. TRANSLATORS: Trimmer At Limit
-#: locale/ipp-strings.c:4078
+#: locale/ipp-strings.c:4116
 msgid "printer-state-reasons.trimmer-at-limit"
 msgstr ""
 
 #. TRANSLATORS: Trimmer Closed
-#: locale/ipp-strings.c:4080
+#: locale/ipp-strings.c:4118
 msgid "printer-state-reasons.trimmer-closed"
 msgstr ""
 
 #. TRANSLATORS: Trimmer Configuration Change
-#: locale/ipp-strings.c:4082
+#: locale/ipp-strings.c:4120
 msgid "printer-state-reasons.trimmer-configuration-change"
 msgstr ""
 
 #. TRANSLATORS: Trimmer Cover Closed
-#: locale/ipp-strings.c:4084
+#: locale/ipp-strings.c:4122
 msgid "printer-state-reasons.trimmer-cover-closed"
 msgstr ""
 
 #. TRANSLATORS: Trimmer Cover Open
-#: locale/ipp-strings.c:4086
+#: locale/ipp-strings.c:4124
 msgid "printer-state-reasons.trimmer-cover-open"
 msgstr ""
 
 #. TRANSLATORS: Trimmer Empty
-#: locale/ipp-strings.c:4088
+#: locale/ipp-strings.c:4126
 msgid "printer-state-reasons.trimmer-empty"
 msgstr ""
 
 #. TRANSLATORS: Trimmer Full
-#: locale/ipp-strings.c:4090
+#: locale/ipp-strings.c:4128
 msgid "printer-state-reasons.trimmer-full"
 msgstr ""
 
 #. TRANSLATORS: Trimmer Interlock Closed
-#: locale/ipp-strings.c:4092
+#: locale/ipp-strings.c:4130
 msgid "printer-state-reasons.trimmer-interlock-closed"
 msgstr ""
 
 #. TRANSLATORS: Trimmer Interlock Open
-#: locale/ipp-strings.c:4094
+#: locale/ipp-strings.c:4132
 msgid "printer-state-reasons.trimmer-interlock-open"
 msgstr ""
 
 #. TRANSLATORS: Trimmer Jam
-#: locale/ipp-strings.c:4096
+#: locale/ipp-strings.c:4134
 msgid "printer-state-reasons.trimmer-jam"
 msgstr ""
 
 #. TRANSLATORS: Trimmer Life Almost Over
-#: locale/ipp-strings.c:4098
+#: locale/ipp-strings.c:4136
 msgid "printer-state-reasons.trimmer-life-almost-over"
 msgstr ""
 
 #. TRANSLATORS: Trimmer Life Over
-#: locale/ipp-strings.c:4100
+#: locale/ipp-strings.c:4138
 msgid "printer-state-reasons.trimmer-life-over"
 msgstr ""
 
 #. TRANSLATORS: Trimmer Memory Exhausted
-#: locale/ipp-strings.c:4102
+#: locale/ipp-strings.c:4140
 msgid "printer-state-reasons.trimmer-memory-exhausted"
 msgstr ""
 
 #. TRANSLATORS: Trimmer Missing
-#: locale/ipp-strings.c:4104
+#: locale/ipp-strings.c:4142
 msgid "printer-state-reasons.trimmer-missing"
 msgstr ""
 
 #. TRANSLATORS: Trimmer Motor Failure
-#: locale/ipp-strings.c:4106
+#: locale/ipp-strings.c:4144
 msgid "printer-state-reasons.trimmer-motor-failure"
 msgstr ""
 
 #. TRANSLATORS: Trimmer Near Limit
-#: locale/ipp-strings.c:4108
+#: locale/ipp-strings.c:4146
 msgid "printer-state-reasons.trimmer-near-limit"
 msgstr ""
 
 #. TRANSLATORS: Trimmer Offline
-#: locale/ipp-strings.c:4110
+#: locale/ipp-strings.c:4148
 msgid "printer-state-reasons.trimmer-offline"
 msgstr ""
 
 #. TRANSLATORS: Trimmer Opened
-#: locale/ipp-strings.c:4112
+#: locale/ipp-strings.c:4150
 msgid "printer-state-reasons.trimmer-opened"
 msgstr ""
 
 #. TRANSLATORS: Trimmer Over Temperature
-#: locale/ipp-strings.c:4114
+#: locale/ipp-strings.c:4152
 msgid "printer-state-reasons.trimmer-over-temperature"
 msgstr ""
 
 #. TRANSLATORS: Trimmer Power Saver
-#: locale/ipp-strings.c:4116
+#: locale/ipp-strings.c:4154
 msgid "printer-state-reasons.trimmer-power-saver"
 msgstr ""
 
 #. TRANSLATORS: Trimmer Recoverable Failure
-#: locale/ipp-strings.c:4118
+#: locale/ipp-strings.c:4156
 msgid "printer-state-reasons.trimmer-recoverable-failure"
 msgstr ""
 
 #. TRANSLATORS: Trimmer Recoverable Storage
-#: locale/ipp-strings.c:4120
+#: locale/ipp-strings.c:4158
 msgid "printer-state-reasons.trimmer-recoverable-storage"
 msgstr ""
 
 #. TRANSLATORS: Trimmer Removed
-#: locale/ipp-strings.c:4122
+#: locale/ipp-strings.c:4160
 msgid "printer-state-reasons.trimmer-removed"
 msgstr ""
 
 #. TRANSLATORS: Trimmer Resource Added
-#: locale/ipp-strings.c:4124
+#: locale/ipp-strings.c:4162
 msgid "printer-state-reasons.trimmer-resource-added"
 msgstr ""
 
 #. TRANSLATORS: Trimmer Resource Removed
-#: locale/ipp-strings.c:4126
+#: locale/ipp-strings.c:4164
 msgid "printer-state-reasons.trimmer-resource-removed"
 msgstr ""
 
 #. TRANSLATORS: Trimmer Thermistor Failure
-#: locale/ipp-strings.c:4128
+#: locale/ipp-strings.c:4166
 msgid "printer-state-reasons.trimmer-thermistor-failure"
 msgstr ""
 
 #. TRANSLATORS: Trimmer Timing Failure
-#: locale/ipp-strings.c:4130
+#: locale/ipp-strings.c:4168
 msgid "printer-state-reasons.trimmer-timing-failure"
 msgstr ""
 
 #. TRANSLATORS: Trimmer Turned Off
-#: locale/ipp-strings.c:4132
+#: locale/ipp-strings.c:4170
 msgid "printer-state-reasons.trimmer-turned-off"
 msgstr ""
 
 #. TRANSLATORS: Trimmer Turned On
-#: locale/ipp-strings.c:4134
+#: locale/ipp-strings.c:4172
 msgid "printer-state-reasons.trimmer-turned-on"
 msgstr ""
 
 #. TRANSLATORS: Trimmer Under Temperature
-#: locale/ipp-strings.c:4136
+#: locale/ipp-strings.c:4174
 msgid "printer-state-reasons.trimmer-under-temperature"
 msgstr ""
 
 #. TRANSLATORS: Trimmer Unrecoverable Failure
-#: locale/ipp-strings.c:4138
+#: locale/ipp-strings.c:4176
 msgid "printer-state-reasons.trimmer-unrecoverable-failure"
 msgstr ""
 
 #. TRANSLATORS: Trimmer Unrecoverable Storage Error
-#: locale/ipp-strings.c:4140
+#: locale/ipp-strings.c:4178
 msgid "printer-state-reasons.trimmer-unrecoverable-storage-error"
 msgstr ""
 
 #. TRANSLATORS: Trimmer Warming Up
-#: locale/ipp-strings.c:4142
+#: locale/ipp-strings.c:4180
 msgid "printer-state-reasons.trimmer-warming-up"
 msgstr ""
 
 #. TRANSLATORS: Unknown
-#: locale/ipp-strings.c:4144
+#: locale/ipp-strings.c:4182
 msgid "printer-state-reasons.unknown"
 msgstr ""
 
 #. TRANSLATORS: Wrapper Added
-#: locale/ipp-strings.c:4146
+#: locale/ipp-strings.c:4184
 msgid "printer-state-reasons.wrapper-added"
 msgstr ""
 
 #. TRANSLATORS: Wrapper Almost Empty
-#: locale/ipp-strings.c:4148
+#: locale/ipp-strings.c:4186
 msgid "printer-state-reasons.wrapper-almost-empty"
 msgstr ""
 
 #. TRANSLATORS: Wrapper Almost Full
-#: locale/ipp-strings.c:4150
+#: locale/ipp-strings.c:4188
 msgid "printer-state-reasons.wrapper-almost-full"
 msgstr ""
 
 #. TRANSLATORS: Wrapper At Limit
-#: locale/ipp-strings.c:4152
+#: locale/ipp-strings.c:4190
 msgid "printer-state-reasons.wrapper-at-limit"
 msgstr ""
 
 #. TRANSLATORS: Wrapper Closed
-#: locale/ipp-strings.c:4154
+#: locale/ipp-strings.c:4192
 msgid "printer-state-reasons.wrapper-closed"
 msgstr ""
 
 #. TRANSLATORS: Wrapper Configuration Change
-#: locale/ipp-strings.c:4156
+#: locale/ipp-strings.c:4194
 msgid "printer-state-reasons.wrapper-configuration-change"
 msgstr ""
 
 #. TRANSLATORS: Wrapper Cover Closed
-#: locale/ipp-strings.c:4158
+#: locale/ipp-strings.c:4196
 msgid "printer-state-reasons.wrapper-cover-closed"
 msgstr ""
 
 #. TRANSLATORS: Wrapper Cover Open
-#: locale/ipp-strings.c:4160
+#: locale/ipp-strings.c:4198
 msgid "printer-state-reasons.wrapper-cover-open"
 msgstr ""
 
 #. TRANSLATORS: Wrapper Empty
-#: locale/ipp-strings.c:4162
+#: locale/ipp-strings.c:4200
 msgid "printer-state-reasons.wrapper-empty"
 msgstr ""
 
 #. TRANSLATORS: Wrapper Full
-#: locale/ipp-strings.c:4164
+#: locale/ipp-strings.c:4202
 msgid "printer-state-reasons.wrapper-full"
 msgstr ""
 
 #. TRANSLATORS: Wrapper Interlock Closed
-#: locale/ipp-strings.c:4166
+#: locale/ipp-strings.c:4204
 msgid "printer-state-reasons.wrapper-interlock-closed"
 msgstr ""
 
 #. TRANSLATORS: Wrapper Interlock Open
-#: locale/ipp-strings.c:4168
+#: locale/ipp-strings.c:4206
 msgid "printer-state-reasons.wrapper-interlock-open"
 msgstr ""
 
 #. TRANSLATORS: Wrapper Jam
-#: locale/ipp-strings.c:4170
+#: locale/ipp-strings.c:4208
 msgid "printer-state-reasons.wrapper-jam"
 msgstr ""
 
 #. TRANSLATORS: Wrapper Life Almost Over
-#: locale/ipp-strings.c:4172
+#: locale/ipp-strings.c:4210
 msgid "printer-state-reasons.wrapper-life-almost-over"
 msgstr ""
 
 #. TRANSLATORS: Wrapper Life Over
-#: locale/ipp-strings.c:4174
+#: locale/ipp-strings.c:4212
 msgid "printer-state-reasons.wrapper-life-over"
 msgstr ""
 
 #. TRANSLATORS: Wrapper Memory Exhausted
-#: locale/ipp-strings.c:4176
+#: locale/ipp-strings.c:4214
 msgid "printer-state-reasons.wrapper-memory-exhausted"
 msgstr ""
 
 #. TRANSLATORS: Wrapper Missing
-#: locale/ipp-strings.c:4178
+#: locale/ipp-strings.c:4216
 msgid "printer-state-reasons.wrapper-missing"
 msgstr ""
 
 #. TRANSLATORS: Wrapper Motor Failure
-#: locale/ipp-strings.c:4180
+#: locale/ipp-strings.c:4218
 msgid "printer-state-reasons.wrapper-motor-failure"
 msgstr ""
 
 #. TRANSLATORS: Wrapper Near Limit
-#: locale/ipp-strings.c:4182
+#: locale/ipp-strings.c:4220
 msgid "printer-state-reasons.wrapper-near-limit"
 msgstr ""
 
 #. TRANSLATORS: Wrapper Offline
-#: locale/ipp-strings.c:4184
+#: locale/ipp-strings.c:4222
 msgid "printer-state-reasons.wrapper-offline"
 msgstr ""
 
 #. TRANSLATORS: Wrapper Opened
-#: locale/ipp-strings.c:4186
+#: locale/ipp-strings.c:4224
 msgid "printer-state-reasons.wrapper-opened"
 msgstr ""
 
 #. TRANSLATORS: Wrapper Over Temperature
-#: locale/ipp-strings.c:4188
+#: locale/ipp-strings.c:4226
 msgid "printer-state-reasons.wrapper-over-temperature"
 msgstr ""
 
 #. TRANSLATORS: Wrapper Power Saver
-#: locale/ipp-strings.c:4190
+#: locale/ipp-strings.c:4228
 msgid "printer-state-reasons.wrapper-power-saver"
 msgstr ""
 
 #. TRANSLATORS: Wrapper Recoverable Failure
-#: locale/ipp-strings.c:4192
+#: locale/ipp-strings.c:4230
 msgid "printer-state-reasons.wrapper-recoverable-failure"
 msgstr ""
 
 #. TRANSLATORS: Wrapper Recoverable Storage
-#: locale/ipp-strings.c:4194
+#: locale/ipp-strings.c:4232
 msgid "printer-state-reasons.wrapper-recoverable-storage"
 msgstr ""
 
 #. TRANSLATORS: Wrapper Removed
-#: locale/ipp-strings.c:4196
+#: locale/ipp-strings.c:4234
 msgid "printer-state-reasons.wrapper-removed"
 msgstr ""
 
 #. TRANSLATORS: Wrapper Resource Added
-#: locale/ipp-strings.c:4198
+#: locale/ipp-strings.c:4236
 msgid "printer-state-reasons.wrapper-resource-added"
 msgstr ""
 
 #. TRANSLATORS: Wrapper Resource Removed
-#: locale/ipp-strings.c:4200
+#: locale/ipp-strings.c:4238
 msgid "printer-state-reasons.wrapper-resource-removed"
 msgstr ""
 
 #. TRANSLATORS: Wrapper Thermistor Failure
-#: locale/ipp-strings.c:4202
+#: locale/ipp-strings.c:4240
 msgid "printer-state-reasons.wrapper-thermistor-failure"
 msgstr ""
 
 #. TRANSLATORS: Wrapper Timing Failure
-#: locale/ipp-strings.c:4204
+#: locale/ipp-strings.c:4242
 msgid "printer-state-reasons.wrapper-timing-failure"
 msgstr ""
 
 #. TRANSLATORS: Wrapper Turned Off
-#: locale/ipp-strings.c:4206
+#: locale/ipp-strings.c:4244
 msgid "printer-state-reasons.wrapper-turned-off"
 msgstr ""
 
 #. TRANSLATORS: Wrapper Turned On
-#: locale/ipp-strings.c:4208
+#: locale/ipp-strings.c:4246
 msgid "printer-state-reasons.wrapper-turned-on"
 msgstr ""
 
 #. TRANSLATORS: Wrapper Under Temperature
-#: locale/ipp-strings.c:4210
+#: locale/ipp-strings.c:4248
 msgid "printer-state-reasons.wrapper-under-temperature"
 msgstr ""
 
 #. TRANSLATORS: Wrapper Unrecoverable Failure
-#: locale/ipp-strings.c:4212
+#: locale/ipp-strings.c:4250
 msgid "printer-state-reasons.wrapper-unrecoverable-failure"
 msgstr ""
 
 #. TRANSLATORS: Wrapper Unrecoverable Storage Error
-#: locale/ipp-strings.c:4214
+#: locale/ipp-strings.c:4252
 msgid "printer-state-reasons.wrapper-unrecoverable-storage-error"
 msgstr ""
 
 #. TRANSLATORS: Wrapper Warming Up
-#: locale/ipp-strings.c:4216
+#: locale/ipp-strings.c:4254
 msgid "printer-state-reasons.wrapper-warming-up"
 msgstr ""
 
 #. TRANSLATORS: Idle
-#: locale/ipp-strings.c:4218
+#: locale/ipp-strings.c:4256
 msgid "printer-state.3"
 msgstr ""
 
 #. TRANSLATORS: Processing
-#: locale/ipp-strings.c:4220
+#: locale/ipp-strings.c:4258
 msgid "printer-state.4"
 msgstr ""
 
 #. TRANSLATORS: Stopped
-#: locale/ipp-strings.c:4222
+#: locale/ipp-strings.c:4260
 msgid "printer-state.5"
 msgstr ""
 
 #. TRANSLATORS: Printer Uptime
-#: locale/ipp-strings.c:4224
+#: locale/ipp-strings.c:4262
 msgid "printer-up-time"
 msgstr ""
 
@@ -18359,52 +18478,52 @@
 msgstr ""
 
 #. TRANSLATORS: Proof Print
-#: locale/ipp-strings.c:4226
+#: locale/ipp-strings.c:4264
 msgid "proof-print"
 msgstr ""
 
 #. TRANSLATORS: Proof Print Copies
-#: locale/ipp-strings.c:4228
+#: locale/ipp-strings.c:4266
 msgid "proof-print-copies"
 msgstr ""
 
 #. TRANSLATORS: Punching
-#: locale/ipp-strings.c:4230
+#: locale/ipp-strings.c:4268
 msgid "punching"
 msgstr ""
 
 #. TRANSLATORS: Punching Locations
-#: locale/ipp-strings.c:4232
+#: locale/ipp-strings.c:4270
 msgid "punching-locations"
 msgstr ""
 
 #. TRANSLATORS: Punching Offset
-#: locale/ipp-strings.c:4234
+#: locale/ipp-strings.c:4272
 msgid "punching-offset"
 msgstr ""
 
 #. TRANSLATORS: Punch Edge
-#: locale/ipp-strings.c:4236
+#: locale/ipp-strings.c:4274
 msgid "punching-reference-edge"
 msgstr ""
 
 #. TRANSLATORS: Bottom
-#: locale/ipp-strings.c:4238
+#: locale/ipp-strings.c:4276
 msgid "punching-reference-edge.bottom"
 msgstr ""
 
 #. TRANSLATORS: Left
-#: locale/ipp-strings.c:4240
+#: locale/ipp-strings.c:4278
 msgid "punching-reference-edge.left"
 msgstr ""
 
 #. TRANSLATORS: Right
-#: locale/ipp-strings.c:4242
+#: locale/ipp-strings.c:4280
 msgid "punching-reference-edge.right"
 msgstr ""
 
 #. TRANSLATORS: Top
-#: locale/ipp-strings.c:4244
+#: locale/ipp-strings.c:4282
 msgid "punching-reference-edge.top"
 msgstr ""
 
@@ -18418,57 +18537,57 @@
 msgstr ""
 
 #. TRANSLATORS: Requested Attributes
-#: locale/ipp-strings.c:4246
+#: locale/ipp-strings.c:4284
 msgid "requested-attributes"
 msgstr ""
 
 #. TRANSLATORS: Retry Interval
-#: locale/ipp-strings.c:4248
+#: locale/ipp-strings.c:4286
 msgid "retry-interval"
 msgstr ""
 
 #. TRANSLATORS: Retry Timeout
-#: locale/ipp-strings.c:4250
+#: locale/ipp-strings.c:4288
 msgid "retry-time-out"
 msgstr ""
 
 #. TRANSLATORS: Save Disposition
-#: locale/ipp-strings.c:4252
+#: locale/ipp-strings.c:4290
 msgid "save-disposition"
 msgstr ""
 
 #. TRANSLATORS: None
-#: locale/ipp-strings.c:4254
+#: locale/ipp-strings.c:4292
 msgid "save-disposition.none"
 msgstr ""
 
 #. TRANSLATORS: Print and Save
-#: locale/ipp-strings.c:4256
+#: locale/ipp-strings.c:4294
 msgid "save-disposition.print-save"
 msgstr ""
 
 #. TRANSLATORS: Save Only
-#: locale/ipp-strings.c:4258
+#: locale/ipp-strings.c:4296
 msgid "save-disposition.save-only"
 msgstr ""
 
 #. TRANSLATORS: Save Document Format
-#: locale/ipp-strings.c:4260
+#: locale/ipp-strings.c:4298
 msgid "save-document-format"
 msgstr ""
 
 #. TRANSLATORS: Save Info
-#: locale/ipp-strings.c:4262
+#: locale/ipp-strings.c:4300
 msgid "save-info"
 msgstr ""
 
 #. TRANSLATORS: Save Location
-#: locale/ipp-strings.c:4264
+#: locale/ipp-strings.c:4302
 msgid "save-location"
 msgstr ""
 
 #. TRANSLATORS: Save Name
-#: locale/ipp-strings.c:4266
+#: locale/ipp-strings.c:4304
 msgid "save-name"
 msgstr ""
 
@@ -18481,61 +18600,61 @@
 msgstr ""
 
 #. TRANSLATORS: Separator Sheets
-#: locale/ipp-strings.c:4268
+#: locale/ipp-strings.c:4306
 msgid "separator-sheets"
 msgstr ""
 
 #. TRANSLATORS: Type of Separator Sheets
-#: locale/ipp-strings.c:4270
+#: locale/ipp-strings.c:4308
 msgid "separator-sheets-type"
 msgstr ""
 
 #. TRANSLATORS: Start and End Sheets
-#: locale/ipp-strings.c:4272
+#: locale/ipp-strings.c:4310
 msgid "separator-sheets-type.both-sheets"
 msgstr ""
 
 #. TRANSLATORS: End Sheet
-#: locale/ipp-strings.c:4274
+#: locale/ipp-strings.c:4312
 msgid "separator-sheets-type.end-sheet"
 msgstr ""
 
 #. TRANSLATORS: None
-#: locale/ipp-strings.c:4276
+#: locale/ipp-strings.c:4314
 msgid "separator-sheets-type.none"
 msgstr ""
 
 #. TRANSLATORS: Slip Sheets
-#: locale/ipp-strings.c:4278
+#: locale/ipp-strings.c:4316
 msgid "separator-sheets-type.slip-sheets"
 msgstr ""
 
 #. TRANSLATORS: Start Sheet
-#: locale/ipp-strings.c:4280
+#: locale/ipp-strings.c:4318
 msgid "separator-sheets-type.start-sheet"
 msgstr ""
 
 #. TRANSLATORS: 2-Sided Printing
-#: locale/ipp-strings.c:4282
+#: locale/ipp-strings.c:4320
 msgid "sides"
 msgstr ""
 
 #. TRANSLATORS: Off
-#: locale/ipp-strings.c:4284
+#: locale/ipp-strings.c:4322
 msgid "sides.one-sided"
 msgstr ""
 
 #. TRANSLATORS: On (Portrait)
-#: locale/ipp-strings.c:4286
+#: locale/ipp-strings.c:4324
 msgid "sides.two-sided-long-edge"
 msgstr ""
 
 #. TRANSLATORS: On (Landscape)
-#: locale/ipp-strings.c:4288
+#: locale/ipp-strings.c:4326
 msgid "sides.two-sided-short-edge"
 msgstr ""
 
-#: cups/adminutil.c:1384
+#: cups/adminutil.c:1380
 #, c-format
 msgid "stat of %s failed: %s"
 msgstr ""
@@ -18545,72 +18664,72 @@
 msgstr ""
 
 #. TRANSLATORS: Status Message
-#: locale/ipp-strings.c:4290
+#: locale/ipp-strings.c:4328
 msgid "status-message"
 msgstr ""
 
 #. TRANSLATORS: Staple
-#: locale/ipp-strings.c:4292
+#: locale/ipp-strings.c:4330
 msgid "stitching"
 msgstr ""
 
 #. TRANSLATORS: Stitching Angle
-#: locale/ipp-strings.c:4294
+#: locale/ipp-strings.c:4332
 msgid "stitching-angle"
 msgstr ""
 
 #. TRANSLATORS: Stitching Locations
-#: locale/ipp-strings.c:4296
+#: locale/ipp-strings.c:4334
 msgid "stitching-locations"
 msgstr ""
 
 #. TRANSLATORS: Staple Method
-#: locale/ipp-strings.c:4298
+#: locale/ipp-strings.c:4336
 msgid "stitching-method"
 msgstr ""
 
 #. TRANSLATORS: Automatic
-#: locale/ipp-strings.c:4300
+#: locale/ipp-strings.c:4338
 msgid "stitching-method.auto"
 msgstr ""
 
 #. TRANSLATORS: Crimp
-#: locale/ipp-strings.c:4302
+#: locale/ipp-strings.c:4340
 msgid "stitching-method.crimp"
 msgstr ""
 
 #. TRANSLATORS: Wire
-#: locale/ipp-strings.c:4304
+#: locale/ipp-strings.c:4342
 msgid "stitching-method.wire"
 msgstr ""
 
 #. TRANSLATORS: Stitching Offset
-#: locale/ipp-strings.c:4306
+#: locale/ipp-strings.c:4344
 msgid "stitching-offset"
 msgstr ""
 
 #. TRANSLATORS: Staple Edge
-#: locale/ipp-strings.c:4308
+#: locale/ipp-strings.c:4346
 msgid "stitching-reference-edge"
 msgstr ""
 
 #. TRANSLATORS: Bottom
-#: locale/ipp-strings.c:4310
+#: locale/ipp-strings.c:4348
 msgid "stitching-reference-edge.bottom"
 msgstr ""
 
 #. TRANSLATORS: Left
-#: locale/ipp-strings.c:4312
+#: locale/ipp-strings.c:4350
 msgid "stitching-reference-edge.left"
 msgstr ""
 
 #. TRANSLATORS: Right
-#: locale/ipp-strings.c:4314
+#: locale/ipp-strings.c:4352
 msgid "stitching-reference-edge.right"
 msgstr ""
 
 #. TRANSLATORS: Top
-#: locale/ipp-strings.c:4316
+#: locale/ipp-strings.c:4354
 msgid "stitching-reference-edge.top"
 msgstr ""
 
@@ -18619,62 +18738,62 @@
 msgstr ""
 
 #. TRANSLATORS: Subject
-#: locale/ipp-strings.c:4318
+#: locale/ipp-strings.c:4356
 msgid "subject"
 msgstr ""
 
 #. TRANSLATORS: Subscription Privacy Attributes
-#: locale/ipp-strings.c:4320
+#: locale/ipp-strings.c:4358
 msgid "subscription-privacy-attributes"
 msgstr ""
 
 #. TRANSLATORS: All
-#: locale/ipp-strings.c:4322
+#: locale/ipp-strings.c:4360
 msgid "subscription-privacy-attributes.all"
 msgstr ""
 
 #. TRANSLATORS: Default
-#: locale/ipp-strings.c:4324
+#: locale/ipp-strings.c:4362
 msgid "subscription-privacy-attributes.default"
 msgstr ""
 
 #. TRANSLATORS: None
-#: locale/ipp-strings.c:4326
+#: locale/ipp-strings.c:4364
 msgid "subscription-privacy-attributes.none"
 msgstr ""
 
 #. TRANSLATORS: Subscription Description
-#: locale/ipp-strings.c:4328
+#: locale/ipp-strings.c:4366
 msgid "subscription-privacy-attributes.subscription-description"
 msgstr ""
 
 #. TRANSLATORS: Subscription Template
-#: locale/ipp-strings.c:4330
+#: locale/ipp-strings.c:4368
 msgid "subscription-privacy-attributes.subscription-template"
 msgstr ""
 
 #. TRANSLATORS: Subscription Privacy Scope
-#: locale/ipp-strings.c:4332
+#: locale/ipp-strings.c:4370
 msgid "subscription-privacy-scope"
 msgstr ""
 
 #. TRANSLATORS: All
-#: locale/ipp-strings.c:4334
+#: locale/ipp-strings.c:4372
 msgid "subscription-privacy-scope.all"
 msgstr ""
 
 #. TRANSLATORS: Default
-#: locale/ipp-strings.c:4336
+#: locale/ipp-strings.c:4374
 msgid "subscription-privacy-scope.default"
 msgstr ""
 
 #. TRANSLATORS: None
-#: locale/ipp-strings.c:4338
+#: locale/ipp-strings.c:4376
 msgid "subscription-privacy-scope.none"
 msgstr ""
 
 #. TRANSLATORS: Owner
-#: locale/ipp-strings.c:4340
+#: locale/ipp-strings.c:4378
 msgid "subscription-privacy-scope.owner"
 msgstr ""
 
@@ -18689,142 +18808,142 @@
 msgstr ""
 
 #. TRANSLATORS: T33 Subaddress
-#: locale/ipp-strings.c:4342
+#: locale/ipp-strings.c:4380
 msgid "t33-subaddress"
 msgstr ""
 
 #. TRANSLATORS: To Name
-#: locale/ipp-strings.c:4344
+#: locale/ipp-strings.c:4382
 msgid "to-name"
 msgstr ""
 
 #. TRANSLATORS: Transmission Status
-#: locale/ipp-strings.c:4346
+#: locale/ipp-strings.c:4384
 msgid "transmission-status"
 msgstr ""
 
 #. TRANSLATORS: Pending
-#: locale/ipp-strings.c:4348
+#: locale/ipp-strings.c:4386
 msgid "transmission-status.3"
 msgstr ""
 
 #. TRANSLATORS: Pending Retry
-#: locale/ipp-strings.c:4350
+#: locale/ipp-strings.c:4388
 msgid "transmission-status.4"
 msgstr ""
 
 #. TRANSLATORS: Processing
-#: locale/ipp-strings.c:4352
+#: locale/ipp-strings.c:4390
 msgid "transmission-status.5"
 msgstr ""
 
 #. TRANSLATORS: Canceled
-#: locale/ipp-strings.c:4354
+#: locale/ipp-strings.c:4392
 msgid "transmission-status.7"
 msgstr ""
 
 #. TRANSLATORS: Aborted
-#: locale/ipp-strings.c:4356
+#: locale/ipp-strings.c:4394
 msgid "transmission-status.8"
 msgstr ""
 
 #. TRANSLATORS: Completed
-#: locale/ipp-strings.c:4358
+#: locale/ipp-strings.c:4396
 msgid "transmission-status.9"
 msgstr ""
 
 #. TRANSLATORS: Cut
-#: locale/ipp-strings.c:4360
+#: locale/ipp-strings.c:4398
 msgid "trimming"
 msgstr ""
 
 #. TRANSLATORS: Cut Position
-#: locale/ipp-strings.c:4362
+#: locale/ipp-strings.c:4400
 msgid "trimming-offset"
 msgstr ""
 
 #. TRANSLATORS: Cut Edge
-#: locale/ipp-strings.c:4364
+#: locale/ipp-strings.c:4402
 msgid "trimming-reference-edge"
 msgstr ""
 
 #. TRANSLATORS: Bottom
-#: locale/ipp-strings.c:4366
+#: locale/ipp-strings.c:4404
 msgid "trimming-reference-edge.bottom"
 msgstr ""
 
 #. TRANSLATORS: Left
-#: locale/ipp-strings.c:4368
+#: locale/ipp-strings.c:4406
 msgid "trimming-reference-edge.left"
 msgstr ""
 
 #. TRANSLATORS: Right
-#: locale/ipp-strings.c:4370
+#: locale/ipp-strings.c:4408
 msgid "trimming-reference-edge.right"
 msgstr ""
 
 #. TRANSLATORS: Top
-#: locale/ipp-strings.c:4372
+#: locale/ipp-strings.c:4410
 msgid "trimming-reference-edge.top"
 msgstr ""
 
 #. TRANSLATORS: Type of Cut
-#: locale/ipp-strings.c:4374
+#: locale/ipp-strings.c:4412
 msgid "trimming-type"
 msgstr ""
 
 #. TRANSLATORS: Draw Line
-#: locale/ipp-strings.c:4376
+#: locale/ipp-strings.c:4414
 msgid "trimming-type.draw-line"
 msgstr ""
 
 #. TRANSLATORS: Full
-#: locale/ipp-strings.c:4378
+#: locale/ipp-strings.c:4416
 msgid "trimming-type.full"
 msgstr ""
 
 #. TRANSLATORS: Partial
-#: locale/ipp-strings.c:4380
+#: locale/ipp-strings.c:4418
 msgid "trimming-type.partial"
 msgstr ""
 
 #. TRANSLATORS: Perforate
-#: locale/ipp-strings.c:4382
+#: locale/ipp-strings.c:4420
 msgid "trimming-type.perforate"
 msgstr ""
 
 #. TRANSLATORS: Score
-#: locale/ipp-strings.c:4384
+#: locale/ipp-strings.c:4422
 msgid "trimming-type.score"
 msgstr ""
 
 #. TRANSLATORS: Tab
-#: locale/ipp-strings.c:4386
+#: locale/ipp-strings.c:4424
 msgid "trimming-type.tab"
 msgstr ""
 
 #. TRANSLATORS: Cut After
-#: locale/ipp-strings.c:4388
+#: locale/ipp-strings.c:4426
 msgid "trimming-when"
 msgstr ""
 
 #. TRANSLATORS: Every Document
-#: locale/ipp-strings.c:4390
+#: locale/ipp-strings.c:4428
 msgid "trimming-when.after-documents"
 msgstr ""
 
 #. TRANSLATORS: Job
-#: locale/ipp-strings.c:4392
+#: locale/ipp-strings.c:4430
 msgid "trimming-when.after-job"
 msgstr ""
 
 #. TRANSLATORS: Every Set
-#: locale/ipp-strings.c:4394
+#: locale/ipp-strings.c:4432
 msgid "trimming-when.after-sets"
 msgstr ""
 
 #. TRANSLATORS: Every Page
-#: locale/ipp-strings.c:4396
+#: locale/ipp-strings.c:4434
 msgid "trimming-when.after-sheets"
 msgstr ""
 
@@ -18841,57 +18960,57 @@
 msgstr ""
 
 #. TRANSLATORS: X Accuracy
-#: locale/ipp-strings.c:4398
+#: locale/ipp-strings.c:4436
 msgid "x-accuracy"
 msgstr ""
 
 #. TRANSLATORS: X Dimension
-#: locale/ipp-strings.c:4400
+#: locale/ipp-strings.c:4438
 msgid "x-dimension"
 msgstr ""
 
 #. TRANSLATORS: X Offset
-#: locale/ipp-strings.c:4402
+#: locale/ipp-strings.c:4440
 msgid "x-offset"
 msgstr ""
 
 #. TRANSLATORS: X Origin
-#: locale/ipp-strings.c:4404
+#: locale/ipp-strings.c:4442
 msgid "x-origin"
 msgstr ""
 
 #. TRANSLATORS: Y Accuracy
-#: locale/ipp-strings.c:4406
+#: locale/ipp-strings.c:4444
 msgid "y-accuracy"
 msgstr ""
 
 #. TRANSLATORS: Y Dimension
-#: locale/ipp-strings.c:4408
+#: locale/ipp-strings.c:4446
 msgid "y-dimension"
 msgstr ""
 
 #. TRANSLATORS: Y Offset
-#: locale/ipp-strings.c:4410
+#: locale/ipp-strings.c:4448
 msgid "y-offset"
 msgstr ""
 
 #. TRANSLATORS: Y Origin
-#: locale/ipp-strings.c:4412
+#: locale/ipp-strings.c:4450
 msgid "y-origin"
 msgstr ""
 
 #. TRANSLATORS: Z Accuracy
-#: locale/ipp-strings.c:4414
+#: locale/ipp-strings.c:4452
 msgid "z-accuracy"
 msgstr ""
 
 #. TRANSLATORS: Z Dimension
-#: locale/ipp-strings.c:4416
+#: locale/ipp-strings.c:4454
 msgid "z-dimension"
 msgstr ""
 
 #. TRANSLATORS: Z Offset
-#: locale/ipp-strings.c:4418
+#: locale/ipp-strings.c:4456
 msgid "z-offset"
 msgstr ""
 
@@ -18931,6 +19050,6 @@
 msgid "{}                      URI"
 msgstr ""
 
-#: cups/dest.c:1864
+#: cups/dest.c:1863
 msgid "~/.cups/lpoptions file names default destination that does not exist."
 msgstr ""
diff --git a/locale/cups.strings b/locale/cups.strings
index 0c69de5..aedc92f 100644
--- a/locale/cups.strings
+++ b/locale/cups.strings
@@ -347,6 +347,7 @@
 "--name regex            Match service name to regular expression" = "--name regex            Match service name to regular expression";
 "--no-web-forms          Disable web forms for media and supplies" = "--no-web-forms          Disable web forms for media and supplies";
 "--not expression        Unary NOT of expression" = "--not expression        Unary NOT of expression";
+"--pam-service service   Use the named PAM service" = "--pam-service service   Use the named PAM service";
 "--path regex            Match resource path to regular expression" = "--path regex            Match resource path to regular expression";
 "--port number[-number]  Match port to number or range" = "--port number[-number]  Match port to number or range";
 "--print                 Print URI if true" = "--print                 Print URI if true";
@@ -402,6 +403,7 @@
 "-9" = "-9";
 "-90" = "-90";
 "-95" = "-95";
+"-A                      Enable authentication" = "-A                      Enable authentication";
 "-C                      Send requests using chunking (default)" = "-C                      Send requests using chunking (default)";
 "-D description          Specify the textual description of the printer" = "-D description          Specify the textual description of the printer";
 "-D device-uri           Set the device URI for the printer" = "-D device-uri           Set the device URI for the printer";
@@ -456,6 +458,7 @@
 "-d                      Show the default destination" = "-d                      Show the default destination";
 "-d destination          Set default destination" = "-d destination          Set default destination";
 "-d destination          Set the named destination as the server default" = "-d destination          Set the named destination as the server default";
+"-d destination          Specify the destination" = "-d destination          Specify the destination";
 "-d name=value           Set named variable to value" = "-d name=value           Set named variable to value";
 "-d regex                Match domain to regular expression" = "-d regex                Match domain to regular expression";
 "-d spool-directory      Set spool directory" = "-d spool-directory      Set spool directory";
@@ -649,6 +652,7 @@
 "30 mm/sec." = "30 mm/sec.";
 "300 mm/sec." = "300 mm/sec.";
 "300dpi" = "300dpi";
+"30859 Paint Can Label" = "30859 Paint Can Label";
 "35" = "35";
 "360dpi" = "360dpi";
 "360x180dpi" = "360x180dpi";
@@ -854,6 +858,7 @@
 "CustominTearInterval" = "CustominTearInterval";
 "Cut" = "Cut";
 "Cutter" = "Cutter";
+"DYMO" = "DYMO";
 "Dark" = "Dark";
 "Darkness" = "Darkness";
 "Data file sent successfully." = "Data file sent successfully.";
@@ -877,7 +882,6 @@
 "Document #%d does not exist in job #%d." = "Document #%d does not exist in job #%d.";
 "Draft" = "Draft";
 "Duplexer" = "Duplexer";
-"Dymo" = "Dymo";
 "EPL1 Label Printer" = "EPL1 Label Printer";
 "EPL2 Label Printer" = "EPL2 Label Printer";
 "Edit Configuration File" = "Edit Configuration File";
@@ -1086,6 +1090,7 @@
 "Local printer created." = "Local printer created.";
 "Long-Edge (Portrait)" = "Long-Edge (Portrait)";
 "Looking for printer." = "Looking for printer.";
+"Main Roll" = "Main Roll";
 "Manual Feed" = "Manual Feed";
 "Media Size" = "Media Size";
 "Media Source" = "Media Source";
@@ -1258,6 +1263,7 @@
 "Rewind" = "Rewind";
 "SEQUENCE uses indefinite length" = "SEQUENCE uses indefinite length";
 "SSL/TLS Negotiation Error" = "SSL/TLS Negotiation Error";
+"Second Roll (DUO/Twin Only)" = "Second Roll (DUO/Twin Only)";
 "See Other" = "See Other";
 "See remote printer." = "See remote printer.";
 "Self-signed credentials are blocked." = "Self-signed credentials are blocked.";
@@ -2114,6 +2120,10 @@
 "finishing-template.trim-after-job" = "Trim After Job";
 // TRANSLATORS: Trim After Every Page
 "finishing-template.trim-after-pages" = "Trim After Every Page";
+// TRANSLATORS: Trim After Every Set
+"finishing-template.trim-after-sets" = "Trim After Every Set";
+// TRANSLATORS: Trim After Every Page
+"finishing-template.trim-after-sheets" = "Trim After Every Page";
 // TRANSLATORS: Finishings
 "finishings" = "Finishings";
 // TRANSLATORS: Finishings
@@ -2358,7 +2368,7 @@
 // TRANSLATORS: Job Accounting User ID
 "job-accounting-user-id" = "Job Accounting User ID";
 // TRANSLATORS: Job Cancel After
-"job-cancel-after" = "job-cancel-after";
+"job-cancel-after" = "Cancel job after";
 // TRANSLATORS: Copies
 "job-copies" = "Copies";
 // TRANSLATORS: Back Cover
@@ -2469,21 +2479,21 @@
 // TRANSLATORS: Job Recipient Name
 "job-recipient-name" = "Job Recipient Name";
 // TRANSLATORS: Job Retain Until
-"job-retain-until" = "job-retain-until";
+"job-retain-until" = "Retain job until";
 // TRANSLATORS: Job Retain Until Interval
-"job-retain-until-interval" = "job-retain-until-interval";
+"job-retain-until-interval" = "Retain job until interval";
 // TRANSLATORS: Job Retain Until Time
-"job-retain-until-time" = "job-retain-until-time";
+"job-retain-until-time" = "Retain job until time";
 // TRANSLATORS: End Of Day
-"job-retain-until.end-of-day" = "job-retain-until.end-of-day";
+"job-retain-until.end-of-day" = "End of day";
 // TRANSLATORS: End Of Month
-"job-retain-until.end-of-month" = "job-retain-until.end-of-month";
+"job-retain-until.end-of-month" = "End of month";
 // TRANSLATORS: End Of Week
-"job-retain-until.end-of-week" = "job-retain-until.end-of-week";
+"job-retain-until.end-of-week" = "End of week";
 // TRANSLATORS: Indefinite
-"job-retain-until.indefinite" = "job-retain-until.indefinite";
+"job-retain-until.indefinite" = "Indefinitely";
 // TRANSLATORS: None
-"job-retain-until.none" = "job-retain-until.none";
+"job-retain-until.none" = "Never";
 // TRANSLATORS: Job Save Disposition
 "job-save-disposition" = "Job Save Disposition";
 // TRANSLATORS: Job Sheet Message
@@ -3207,6 +3217,32 @@
 "media-type.cardstock" = "Cardstock";
 // TRANSLATORS: CD
 "media-type.cd" = "CD";
+// TRANSLATORS: Photo Advanced Paper
+"media-type.com.hp.advanced-photo" = "Photo Advanced Paper";
+// TRANSLATORS: Brochure Glossy Paper
+"media-type.com.hp.brochure-glossy" = "Brochure Glossy Paper";
+// TRANSLATORS: Brochure Matte Paper
+"media-type.com.hp.brochure-matte" = "Brochure Matte Paper";
+// TRANSLATORS: Matte Coverstock
+"media-type.com.hp.cover-matte" = "Matte Coverstock";
+// TRANSLATORS: EcoSMART Lite Paper
+"media-type.com.hp.ecosmart-lite" = "EcoSMART Lite Paper";
+// TRANSLATORS: Everyday Glossy Paper
+"media-type.com.hp.everyday-glossy" = "Everyday Glossy Paper";
+// TRANSLATORS: Everyday Matte Paper
+"media-type.com.hp.everyday-matte" = "Everyday Matte Paper";
+// TRANSLATORS: Extra Heavyweight Paper
+"media-type.com.hp.extra-heavy" = "Extra Heavyweight Paper";
+// TRANSLATORS: Intermediate Paper
+"media-type.com.hp.intermediate" = "Intermediate Paper";
+// TRANSLATORS: Mid-Weight Paper
+"media-type.com.hp.mid-weight" = "Mid-Weight Paper";
+// TRANSLATORS: Inkjet Premium Paper
+"media-type.com.hp.premium-inkjet" = "Inkjet Premium Paper";
+// TRANSLATORS: Photo Premium Paper
+"media-type.com.hp.premium-photo" = "Photo Premium Paper";
+// TRANSLATORS: Premium Matte Presentation Paper
+"media-type.com.hp.premium-presentation-matte" = "Premium Matte Presentation Paper";
 // TRANSLATORS: Continuous
 "media-type.continuous" = "Continuous";
 // TRANSLATORS: Continuous Long
@@ -3303,6 +3339,14 @@
 "media-type.image-setter-paper" = "Image Setter Paper";
 // TRANSLATORS: Imaging Cylinder
 "media-type.imaging-cylinder" = "Imaging Cylinder";
+// TRANSLATORS: Photo Paper Plus Glossy II
+"media-type.jp.co.canon-photo-paper-plus-glossy-ii" = "Photo Paper Plus Glossy II";
+// TRANSLATORS: Photo Paper Pro Platinum
+"media-type.jp.co.canon-photo-paper-pro-platinum" = "Photo Paper Pro Platinum";
+// TRANSLATORS: Photo Paper Plus Glossy II
+"media-type.jp.co.canon_photo-paper-plus-glossy-ii" = "Photo Paper Plus Glossy II";
+// TRANSLATORS: Photo Paper Pro Platinum
+"media-type.jp.co.canon_photo-paper-pro-platinum" = "Photo Paper Pro Platinum";
 // TRANSLATORS: Labels
 "media-type.labels" = "Labels";
 // TRANSLATORS: Colored Labels
@@ -3622,7 +3666,7 @@
 // TRANSLATORS: Envelope Chou 3
 "media.jpn_chou3_120x235mm" = "Envelope Chou 3";
 // TRANSLATORS: Envelope Chou 40
-"media.jpn_chou40_90x225mm" = "media.jpn_chou40_90x225mm";
+"media.jpn_chou40_90x225mm" = "Envelope Chou 40";
 // TRANSLATORS: Envelope Chou 4
 "media.jpn_chou4_90x205mm" = "Envelope Chou 4";
 // TRANSLATORS: Hagaki
@@ -4265,13 +4309,13 @@
 // TRANSLATORS: Print Optimization
 "print-content-optimize" = "Print Optimization";
 // TRANSLATORS: Print Content Optimize Actual
-"print-content-optimize-actual" = "print-content-optimize-actual";
+"print-content-optimize-actual" = "Print Optimization";
 // TRANSLATORS: Automatic
 "print-content-optimize.auto" = "Automatic";
 // TRANSLATORS: Graphics
 "print-content-optimize.graphic" = "Graphics";
 // TRANSLATORS: Graphics
-"print-content-optimize.graphics" = "print-content-optimize.graphics";
+"print-content-optimize.graphics" = "Graphics";
 // TRANSLATORS: Photo
 "print-content-optimize.photo" = "Photo";
 // TRANSLATORS: Text
@@ -4279,7 +4323,7 @@
 // TRANSLATORS: Text and Graphics
 "print-content-optimize.text-and-graphic" = "Text and Graphics";
 // TRANSLATORS: Text And Graphics
-"print-content-optimize.text-and-graphics" = "print-content-optimize.text-and-graphics";
+"print-content-optimize.text-and-graphics" = "Text and Graphics";
 // TRANSLATORS: Print Objects
 "print-objects" = "Print Objects";
 // TRANSLATORS: Print Quality
@@ -4334,25 +4378,25 @@
 "printer %s/%s is idle.  enabled since %s" = "printer %s/%s is idle.  enabled since %s";
 "printer %s/%s now printing %s-%d.  enabled since %s" = "printer %s/%s now printing %s-%d.  enabled since %s";
 // TRANSLATORS: Printer Kind
-"printer-kind" = "printer-kind";
+"printer-kind" = "Printer Kind";
 // TRANSLATORS: Disc
-"printer-kind.disc" = "printer-kind.disc";
+"printer-kind.disc" = "Disc";
 // TRANSLATORS: Document
-"printer-kind.document" = "printer-kind.document";
+"printer-kind.document" = "Document";
 // TRANSLATORS: Envelope
-"printer-kind.envelope" = "printer-kind.envelope";
+"printer-kind.envelope" = "Envelope";
 // TRANSLATORS: Label
-"printer-kind.label" = "printer-kind.label";
+"printer-kind.label" = "Label";
 // TRANSLATORS: Large Format
-"printer-kind.large-format" = "printer-kind.large-format";
+"printer-kind.large-format" = "Large format";
 // TRANSLATORS: Photo
-"printer-kind.photo" = "printer-kind.photo";
+"printer-kind.photo" = "Photo";
 // TRANSLATORS: Postcard
-"printer-kind.postcard" = "printer-kind.postcard";
+"printer-kind.postcard" = "Postcard";
 // TRANSLATORS: Receipt
-"printer-kind.receipt" = "printer-kind.receipt";
+"printer-kind.receipt" = "Receipt";
 // TRANSLATORS: Roll
-"printer-kind.roll" = "printer-kind.roll";
+"printer-kind.roll" = "Roll";
 // TRANSLATORS: Message From Operator
 "printer-message-from-operator" = "Message From Operator";
 // TRANSLATORS: Print Resolution
@@ -4624,15 +4668,15 @@
 // TRANSLATORS: Fan Failure
 "printer-state-reasons.fan-failure" = "Fan Failure";
 // TRANSLATORS: Fax Modem Life Almost Over
-"printer-state-reasons.fax-modem-life-almost-over" = "printer-state-reasons.fax-modem-life-almost-over";
+"printer-state-reasons.fax-modem-life-almost-over" = "Fax Modem Life Almost Over";
 // TRANSLATORS: Fax Modem Life Over
-"printer-state-reasons.fax-modem-life-over" = "printer-state-reasons.fax-modem-life-over";
+"printer-state-reasons.fax-modem-life-over" = "Fax Modem Life Over";
 // TRANSLATORS: Fax Modem Missing
-"printer-state-reasons.fax-modem-missing" = "printer-state-reasons.fax-modem-missing";
+"printer-state-reasons.fax-modem-missing" = "Fax Modem Missing";
 // TRANSLATORS: Fax Modem Turned Off
-"printer-state-reasons.fax-modem-turned-off" = "printer-state-reasons.fax-modem-turned-off";
+"printer-state-reasons.fax-modem-turned-off" = "Fax Modem Turned Off";
 // TRANSLATORS: Fax Modem Turned On
-"printer-state-reasons.fax-modem-turned-on" = "printer-state-reasons.fax-modem-turned-on";
+"printer-state-reasons.fax-modem-turned-on" = "Fax Modem Turned On";
 // TRANSLATORS: Folder Added
 "printer-state-reasons.folder-added" = "Folder Added";
 // TRANSLATORS: Folder Almost Empty
@@ -4796,23 +4840,23 @@
 // TRANSLATORS: Input Media Size Change
 "printer-state-reasons.input-media-size-change" = "Input Media Size Change";
 // TRANSLATORS: Input Media Tray Failure
-"printer-state-reasons.input-media-tray-failure" = "printer-state-reasons.input-media-tray-failure";
+"printer-state-reasons.input-media-tray-failure" = "Input Media Tray Failure";
 // TRANSLATORS: Input Media Tray Feed Error
-"printer-state-reasons.input-media-tray-feed-error" = "printer-state-reasons.input-media-tray-feed-error";
+"printer-state-reasons.input-media-tray-feed-error" = "Input Media Tray Feed Error";
 // TRANSLATORS: Input Media Tray Jam
-"printer-state-reasons.input-media-tray-jam" = "printer-state-reasons.input-media-tray-jam";
+"printer-state-reasons.input-media-tray-jam" = "Input Media Tray Jam";
 // TRANSLATORS: Input Media Type Change
 "printer-state-reasons.input-media-type-change" = "Input Media Type Change";
 // TRANSLATORS: Input Media Weight Change
 "printer-state-reasons.input-media-weight-change" = "Input Media Weight Change";
 // TRANSLATORS: Input Pick Roller Failure
-"printer-state-reasons.input-pick-roller-failure" = "printer-state-reasons.input-pick-roller-failure";
+"printer-state-reasons.input-pick-roller-failure" = "Input Pick Roller Failure";
 // TRANSLATORS: Input Pick Roller Life Over
-"printer-state-reasons.input-pick-roller-life-over" = "printer-state-reasons.input-pick-roller-life-over";
+"printer-state-reasons.input-pick-roller-life-over" = "Input Pick Roller Life Over";
 // TRANSLATORS: Input Pick Roller Life Warn
-"printer-state-reasons.input-pick-roller-life-warn" = "printer-state-reasons.input-pick-roller-life-warn";
+"printer-state-reasons.input-pick-roller-life-warn" = "Input Pick Roller Life Warn";
 // TRANSLATORS: Input Pick Roller Missing
-"printer-state-reasons.input-pick-roller-missing" = "printer-state-reasons.input-pick-roller-missing";
+"printer-state-reasons.input-pick-roller-missing" = "Input Pick Roller Missing";
 // TRANSLATORS: Input Tray Elevation Failure
 "printer-state-reasons.input-tray-elevation-failure" = "Input Tray Elevation Failure";
 // TRANSLATORS: Paper tray is missing
@@ -4998,63 +5042,63 @@
 // TRANSLATORS: Marker Adjusting Print Quality
 "printer-state-reasons.marker-adjusting-print-quality" = "Marker Adjusting Print Quality";
 // TRANSLATORS: Marker Cleaner Missing
-"printer-state-reasons.marker-cleaner-missing" = "printer-state-reasons.marker-cleaner-missing";
+"printer-state-reasons.marker-cleaner-missing" = "Marker Cleaner Missing";
 // TRANSLATORS: Marker Developer Almost Empty
 "printer-state-reasons.marker-developer-almost-empty" = "Marker Developer Almost Empty";
 // TRANSLATORS: Marker Developer Empty
 "printer-state-reasons.marker-developer-empty" = "Marker Developer Empty";
 // TRANSLATORS: Marker Developer Missing
-"printer-state-reasons.marker-developer-missing" = "printer-state-reasons.marker-developer-missing";
+"printer-state-reasons.marker-developer-missing" = "Marker Developer Missing";
 // TRANSLATORS: Marker Fuser Missing
-"printer-state-reasons.marker-fuser-missing" = "printer-state-reasons.marker-fuser-missing";
+"printer-state-reasons.marker-fuser-missing" = "Marker Fuser Missing";
 // TRANSLATORS: Marker Fuser Thermistor Failure
 "printer-state-reasons.marker-fuser-thermistor-failure" = "Marker Fuser Thermistor Failure";
 // TRANSLATORS: Marker Fuser Timing Failure
 "printer-state-reasons.marker-fuser-timing-failure" = "Marker Fuser Timing Failure";
 // TRANSLATORS: Marker Ink Almost Empty
-"printer-state-reasons.marker-ink-almost-empty" = "Marker Ink Almost Empty";
+"printer-state-reasons.marker-ink-almost-empty" = "Low ink";
 // TRANSLATORS: Marker Ink Empty
-"printer-state-reasons.marker-ink-empty" = "Marker Ink Empty";
+"printer-state-reasons.marker-ink-empty" = "Ink empty";
 // TRANSLATORS: Marker Ink Missing
-"printer-state-reasons.marker-ink-missing" = "printer-state-reasons.marker-ink-missing";
+"printer-state-reasons.marker-ink-missing" = "Ink missing";
 // TRANSLATORS: Marker Opc Missing
-"printer-state-reasons.marker-opc-missing" = "printer-state-reasons.marker-opc-missing";
+"printer-state-reasons.marker-opc-missing" = "OPC missing";
 // TRANSLATORS: Marker Print Ribbon Almost Empty
-"printer-state-reasons.marker-print-ribbon-almost-empty" = "Marker Print Ribbon Almost Empty";
+"printer-state-reasons.marker-print-ribbon-almost-empty" = "Print ribbon Almost Empty";
 // TRANSLATORS: Marker Print Ribbon Empty
-"printer-state-reasons.marker-print-ribbon-empty" = "Marker Print Ribbon Empty";
+"printer-state-reasons.marker-print-ribbon-empty" = "Print ribbon Empty";
 // TRANSLATORS: Marker Print Ribbon Missing
-"printer-state-reasons.marker-print-ribbon-missing" = "printer-state-reasons.marker-print-ribbon-missing";
+"printer-state-reasons.marker-print-ribbon-missing" = "Print ribbon missing";
 // TRANSLATORS: Marker Supply Almost Empty
-"printer-state-reasons.marker-supply-almost-empty" = "printer-state-reasons.marker-supply-almost-empty";
+"printer-state-reasons.marker-supply-almost-empty" = "Ink/toner almost empty";
 // TRANSLATORS: Ink/toner empty
-"printer-state-reasons.marker-supply-empty" = "Marker Supply Empty";
+"printer-state-reasons.marker-supply-empty" = "Ink/toner empty";
 // TRANSLATORS: Ink/toner low
-"printer-state-reasons.marker-supply-low" = "Marker Supply Low";
+"printer-state-reasons.marker-supply-low" = "Ink/toner low";
 // TRANSLATORS: Marker Supply Missing
-"printer-state-reasons.marker-supply-missing" = "printer-state-reasons.marker-supply-missing";
+"printer-state-reasons.marker-supply-missing" = "Ink/toner missing";
 // TRANSLATORS: Marker Toner Cartridge Missing
-"printer-state-reasons.marker-toner-cartridge-missing" = "Marker Toner Cartridge Missing";
+"printer-state-reasons.marker-toner-cartridge-missing" = "Toner cartridge missing";
 // TRANSLATORS: Marker Toner Missing
-"printer-state-reasons.marker-toner-missing" = "printer-state-reasons.marker-toner-missing";
+"printer-state-reasons.marker-toner-missing" = "Toner missing";
 // TRANSLATORS: Ink/toner waste bin almost full
-"printer-state-reasons.marker-waste-almost-full" = "Marker Waste Almost Full";
+"printer-state-reasons.marker-waste-almost-full" = "Ink/toner waste bin almost full";
 // TRANSLATORS: Ink/toner waste bin full
-"printer-state-reasons.marker-waste-full" = "Marker Waste Full";
+"printer-state-reasons.marker-waste-full" = "Ink/toner waste bin full";
 // TRANSLATORS: Marker Waste Ink Receptacle Almost Full
 "printer-state-reasons.marker-waste-ink-receptacle-almost-full" = "Marker Waste Ink Receptacle Almost Full";
 // TRANSLATORS: Marker Waste Ink Receptacle Full
 "printer-state-reasons.marker-waste-ink-receptacle-full" = "Marker Waste Ink Receptacle Full";
 // TRANSLATORS: Marker Waste Ink Receptacle Missing
-"printer-state-reasons.marker-waste-ink-receptacle-missing" = "printer-state-reasons.marker-waste-ink-receptacle-missing";
+"printer-state-reasons.marker-waste-ink-receptacle-missing" = "Marker Waste Ink Receptacle Missing";
 // TRANSLATORS: Marker Waste Missing
-"printer-state-reasons.marker-waste-missing" = "printer-state-reasons.marker-waste-missing";
+"printer-state-reasons.marker-waste-missing" = "Ink/toner waste bin missing";
 // TRANSLATORS: Marker Waste Toner Receptacle Almost Full
 "printer-state-reasons.marker-waste-toner-receptacle-almost-full" = "Marker Waste Toner Receptacle Almost Full";
 // TRANSLATORS: Marker Waste Toner Receptacle Full
 "printer-state-reasons.marker-waste-toner-receptacle-full" = "Marker Waste Toner Receptacle Full";
 // TRANSLATORS: Marker Waste Toner Receptacle Missing
-"printer-state-reasons.marker-waste-toner-receptacle-missing" = "printer-state-reasons.marker-waste-toner-receptacle-missing";
+"printer-state-reasons.marker-waste-toner-receptacle-missing" = "Marker Waste Toner Receptacle Missing";
 // TRANSLATORS: Material Empty
 "printer-state-reasons.material-empty" = "Material Empty";
 // TRANSLATORS: Material Low
diff --git a/locale/cups_ca.po b/locale/cups_ca.po
index f614af3..7e189e6 100644
--- a/locale/cups_ca.po
+++ b/locale/cups_ca.po
@@ -13,7 +13,7 @@
 msgstr ""
 "Project-Id-Version: CUPS 2.3\n"
 "Report-Msgid-Bugs-To: https://github.com/apple/cups/issues\n"
-"POT-Creation-Date: 2019-08-23 09:13-0400\n"
+"POT-Creation-Date: 2019-12-18 20:19-0500\n"
 "PO-Revision-Date: 2012-09-29 11:21+0200\n"
 "Last-Translator: Àngel Mompó <mecatxis@gmail.com>\n"
 "Language-Team: Catalan <ca@dodds.net>\n"
@@ -1579,6 +1579,9 @@
 msgid "--not expression        Unary NOT of expression"
 msgstr ""
 
+msgid "--pam-service service   Use the named PAM service"
+msgstr ""
+
 msgid "--path regex            Match resource path to regular expression"
 msgstr ""
 
@@ -1749,6 +1752,9 @@
 msgid "-95"
 msgstr "-95"
 
+msgid "-A                      Enable authentication"
+msgstr ""
+
 msgid "-C                      Send requests using chunking (default)"
 msgstr ""
 
@@ -1920,6 +1926,9 @@
 msgid "-d destination          Set the named destination as the server default"
 msgstr ""
 
+msgid "-d destination          Specify the destination"
+msgstr ""
+
 msgid "-d name=value           Set named variable to value"
 msgstr ""
 
@@ -2529,6 +2538,9 @@
 msgid "300dpi"
 msgstr "300ppp"
 
+msgid "30859 Paint Can Label"
+msgstr ""
+
 msgid "35"
 msgstr "35"
 
@@ -3179,6 +3191,9 @@
 msgid "Cutter"
 msgstr "Ganiveta"
 
+msgid "DYMO"
+msgstr ""
+
 msgid "Dark"
 msgstr "Fosc"
 
@@ -3268,9 +3283,6 @@
 msgid "Duplexer"
 msgstr "Unitat d'impressió a dues cares"
 
-msgid "Dymo"
-msgstr "Dymo"
-
 msgid "EPL1 Label Printer"
 msgstr "Impressora d'etiquetes EPL1"
 
@@ -3927,6 +3939,9 @@
 msgid "Looking for printer."
 msgstr "S'està buscant la impressora."
 
+msgid "Main Roll"
+msgstr ""
+
 msgid "Manual Feed"
 msgstr "Alimentació manual"
 
@@ -4465,6 +4480,9 @@
 msgid "SSL/TLS Negotiation Error"
 msgstr "S'ha produït un error mentre es negociava el SSL/TLS"
 
+msgid "Second Roll (DUO/Twin Only)"
+msgstr ""
+
 msgid "See Other"
 msgstr "Vegeu altres"
 
@@ -6596,6 +6614,14 @@
 msgid "finishing-template.trim-after-pages"
 msgstr ""
 
+#. TRANSLATORS: Trim After Every Set
+msgid "finishing-template.trim-after-sets"
+msgstr ""
+
+#. TRANSLATORS: Trim After Every Page
+msgid "finishing-template.trim-after-sheets"
+msgstr ""
+
 #. TRANSLATORS: Finishings
 msgid "finishings"
 msgstr ""
@@ -8939,6 +8965,58 @@
 msgid "media-type.cd"
 msgstr ""
 
+#. TRANSLATORS: Photo Advanced Paper
+msgid "media-type.com.hp.advanced-photo"
+msgstr ""
+
+#. TRANSLATORS: Brochure Glossy Paper
+msgid "media-type.com.hp.brochure-glossy"
+msgstr ""
+
+#. TRANSLATORS: Brochure Matte Paper
+msgid "media-type.com.hp.brochure-matte"
+msgstr ""
+
+#. TRANSLATORS: Matte Coverstock
+msgid "media-type.com.hp.cover-matte"
+msgstr ""
+
+#. TRANSLATORS: EcoSMART Lite Paper
+msgid "media-type.com.hp.ecosmart-lite"
+msgstr ""
+
+#. TRANSLATORS: Everyday Glossy Paper
+msgid "media-type.com.hp.everyday-glossy"
+msgstr ""
+
+#. TRANSLATORS: Everyday Matte Paper
+msgid "media-type.com.hp.everyday-matte"
+msgstr ""
+
+#. TRANSLATORS: Extra Heavyweight Paper
+msgid "media-type.com.hp.extra-heavy"
+msgstr ""
+
+#. TRANSLATORS: Intermediate Paper
+msgid "media-type.com.hp.intermediate"
+msgstr ""
+
+#. TRANSLATORS: Mid-Weight Paper
+msgid "media-type.com.hp.mid-weight"
+msgstr ""
+
+#. TRANSLATORS: Inkjet Premium Paper
+msgid "media-type.com.hp.premium-inkjet"
+msgstr ""
+
+#. TRANSLATORS: Photo Premium Paper
+msgid "media-type.com.hp.premium-photo"
+msgstr ""
+
+#. TRANSLATORS: Premium Matte Presentation Paper
+msgid "media-type.com.hp.premium-presentation-matte"
+msgstr ""
+
 #. TRANSLATORS: Continuous
 msgid "media-type.continuous"
 msgstr ""
@@ -9131,6 +9209,22 @@
 msgid "media-type.imaging-cylinder"
 msgstr ""
 
+#. TRANSLATORS: Photo Paper Plus Glossy II
+msgid "media-type.jp.co.canon-photo-paper-plus-glossy-ii"
+msgstr ""
+
+#. TRANSLATORS: Photo Paper Pro Platinum
+msgid "media-type.jp.co.canon-photo-paper-pro-platinum"
+msgstr ""
+
+#. TRANSLATORS: Photo Paper Plus Glossy II
+msgid "media-type.jp.co.canon_photo-paper-plus-glossy-ii"
+msgstr ""
+
+#. TRANSLATORS: Photo Paper Pro Platinum
+msgid "media-type.jp.co.canon_photo-paper-pro-platinum"
+msgstr ""
+
 #. TRANSLATORS: Labels
 msgid "media-type.labels"
 msgstr ""
@@ -15161,6 +15255,9 @@
 #~ "Necessiteu una nom d'usuari de Samba per exportar els controladors "
 #~ "d'impressora"
 
+#~ msgid "Dymo"
+#~ msgstr "Dymo"
+
 #~ msgid "Export Printers to Samba"
 #~ msgstr "Exportar les impressores al Samba"
 
diff --git a/locale/cups_cs.po b/locale/cups_cs.po
index bd244a4..329e9ff 100644
--- a/locale/cups_cs.po
+++ b/locale/cups_cs.po
@@ -11,7 +11,7 @@
 msgstr ""
 "Project-Id-Version: CUPS 2.3\n"
 "Report-Msgid-Bugs-To: https://github.com/apple/cups/issues\n"
-"POT-Creation-Date: 2019-08-23 09:13-0400\n"
+"POT-Creation-Date: 2019-12-18 20:19-0500\n"
 "PO-Revision-Date: 2012-09-14 10:26+0100\n"
 "Last-Translator: Jan Bartos <jan.bartos@madeta.cz>\n"
 "Language-Team: Czech\n"
@@ -1428,6 +1428,9 @@
 msgid "--not expression        Unary NOT of expression"
 msgstr ""
 
+msgid "--pam-service service   Use the named PAM service"
+msgstr ""
+
 msgid "--path regex            Match resource path to regular expression"
 msgstr ""
 
@@ -1598,6 +1601,9 @@
 msgid "-95"
 msgstr "-95"
 
+msgid "-A                      Enable authentication"
+msgstr ""
+
 msgid "-C                      Send requests using chunking (default)"
 msgstr ""
 
@@ -1769,6 +1775,9 @@
 msgid "-d destination          Set the named destination as the server default"
 msgstr ""
 
+msgid "-d destination          Specify the destination"
+msgstr ""
+
 msgid "-d name=value           Set named variable to value"
 msgstr ""
 
@@ -2378,6 +2387,9 @@
 msgid "300dpi"
 msgstr "300 dpi"
 
+msgid "30859 Paint Can Label"
+msgstr ""
+
 msgid "35"
 msgstr "35"
 
@@ -3024,6 +3036,9 @@
 msgid "Cutter"
 msgstr "Výstřižek"
 
+msgid "DYMO"
+msgstr ""
+
 msgid "Dark"
 msgstr "Tmavý"
 
@@ -3107,9 +3122,6 @@
 msgid "Duplexer"
 msgstr "Duplexní jednotka"
 
-msgid "Dymo"
-msgstr "Dymo"
-
 msgid "EPL1 Label Printer"
 msgstr "Tiskárna štítků EPL1"
 
@@ -3762,6 +3774,9 @@
 msgid "Looking for printer."
 msgstr ""
 
+msgid "Main Roll"
+msgstr ""
+
 msgid "Manual Feed"
 msgstr "Ruční podávání"
 
@@ -4293,6 +4308,9 @@
 msgid "SSL/TLS Negotiation Error"
 msgstr ""
 
+msgid "Second Roll (DUO/Twin Only)"
+msgstr ""
+
 msgid "See Other"
 msgstr "Viz další"
 
@@ -6394,6 +6412,14 @@
 msgid "finishing-template.trim-after-pages"
 msgstr ""
 
+#. TRANSLATORS: Trim After Every Set
+msgid "finishing-template.trim-after-sets"
+msgstr ""
+
+#. TRANSLATORS: Trim After Every Page
+msgid "finishing-template.trim-after-sheets"
+msgstr ""
+
 #. TRANSLATORS: Finishings
 msgid "finishings"
 msgstr ""
@@ -8720,6 +8746,58 @@
 msgid "media-type.cd"
 msgstr ""
 
+#. TRANSLATORS: Photo Advanced Paper
+msgid "media-type.com.hp.advanced-photo"
+msgstr ""
+
+#. TRANSLATORS: Brochure Glossy Paper
+msgid "media-type.com.hp.brochure-glossy"
+msgstr ""
+
+#. TRANSLATORS: Brochure Matte Paper
+msgid "media-type.com.hp.brochure-matte"
+msgstr ""
+
+#. TRANSLATORS: Matte Coverstock
+msgid "media-type.com.hp.cover-matte"
+msgstr ""
+
+#. TRANSLATORS: EcoSMART Lite Paper
+msgid "media-type.com.hp.ecosmart-lite"
+msgstr ""
+
+#. TRANSLATORS: Everyday Glossy Paper
+msgid "media-type.com.hp.everyday-glossy"
+msgstr ""
+
+#. TRANSLATORS: Everyday Matte Paper
+msgid "media-type.com.hp.everyday-matte"
+msgstr ""
+
+#. TRANSLATORS: Extra Heavyweight Paper
+msgid "media-type.com.hp.extra-heavy"
+msgstr ""
+
+#. TRANSLATORS: Intermediate Paper
+msgid "media-type.com.hp.intermediate"
+msgstr ""
+
+#. TRANSLATORS: Mid-Weight Paper
+msgid "media-type.com.hp.mid-weight"
+msgstr ""
+
+#. TRANSLATORS: Inkjet Premium Paper
+msgid "media-type.com.hp.premium-inkjet"
+msgstr ""
+
+#. TRANSLATORS: Photo Premium Paper
+msgid "media-type.com.hp.premium-photo"
+msgstr ""
+
+#. TRANSLATORS: Premium Matte Presentation Paper
+msgid "media-type.com.hp.premium-presentation-matte"
+msgstr ""
+
 #. TRANSLATORS: Continuous
 msgid "media-type.continuous"
 msgstr ""
@@ -8912,6 +8990,22 @@
 msgid "media-type.imaging-cylinder"
 msgstr ""
 
+#. TRANSLATORS: Photo Paper Plus Glossy II
+msgid "media-type.jp.co.canon-photo-paper-plus-glossy-ii"
+msgstr ""
+
+#. TRANSLATORS: Photo Paper Pro Platinum
+msgid "media-type.jp.co.canon-photo-paper-pro-platinum"
+msgstr ""
+
+#. TRANSLATORS: Photo Paper Plus Glossy II
+msgid "media-type.jp.co.canon_photo-paper-plus-glossy-ii"
+msgstr ""
+
+#. TRANSLATORS: Photo Paper Pro Platinum
+msgid "media-type.jp.co.canon_photo-paper-pro-platinum"
+msgstr ""
+
 #. TRANSLATORS: Labels
 msgid "media-type.labels"
 msgstr ""
@@ -14903,5 +14997,8 @@
 msgid "~/.cups/lpoptions file names default destination that does not exist."
 msgstr ""
 
+#~ msgid "Dymo"
+#~ msgstr "Dymo"
+
 #~ msgid "Export Printers to Samba"
 #~ msgstr "Export tiskáren do Samby"
diff --git a/locale/cups_de.po b/locale/cups_de.po
index 0363a3c..6ac08cb 100644
--- a/locale/cups_de.po
+++ b/locale/cups_de.po
@@ -22,7 +22,7 @@
 msgstr ""
 "Project-Id-Version: CUPS 2.3\n"
 "Report-Msgid-Bugs-To: https://github.com/apple/cups/issues\n"
-"POT-Creation-Date: 2019-08-23 09:13-0400\n"
+"POT-Creation-Date: 2019-12-18 20:19-0500\n"
 "PO-Revision-Date: 2017-10-25 14:57+0200\n"
 "Last-Translator: Joachim Schwender <joachim.schwender@web.de>\n"
 "Language-Team: German <LL@li.org>\n"
@@ -1495,6 +1495,9 @@
 msgid "--not expression        Unary NOT of expression"
 msgstr ""
 
+msgid "--pam-service service   Use the named PAM service"
+msgstr ""
+
 msgid "--path regex            Match resource path to regular expression"
 msgstr ""
 
@@ -1665,6 +1668,9 @@
 msgid "-95"
 msgstr "-95"
 
+msgid "-A                      Enable authentication"
+msgstr ""
+
 msgid "-C                      Send requests using chunking (default)"
 msgstr ""
 
@@ -1836,6 +1842,9 @@
 msgid "-d destination          Set the named destination as the server default"
 msgstr ""
 
+msgid "-d destination          Specify the destination"
+msgstr ""
+
 msgid "-d name=value           Set named variable to value"
 msgstr ""
 
@@ -2450,6 +2459,9 @@
 msgid "300dpi"
 msgstr "300 dpi"
 
+msgid "30859 Paint Can Label"
+msgstr ""
+
 msgid "35"
 msgstr "35"
 
@@ -3099,6 +3111,9 @@
 msgid "Cutter"
 msgstr "Abschneider"
 
+msgid "DYMO"
+msgstr ""
+
 msgid "Dark"
 msgstr "Dunkel"
 
@@ -3188,9 +3203,6 @@
 msgid "Duplexer"
 msgstr "Duplexer"
 
-msgid "Dymo"
-msgstr "Dymo"
-
 msgid "EPL1 Label Printer"
 msgstr "EPL1 Etikettendrucker"
 
@@ -3845,6 +3857,9 @@
 msgid "Looking for printer."
 msgstr "Suche nach Drucker."
 
+msgid "Main Roll"
+msgstr ""
+
 msgid "Manual Feed"
 msgstr "Manuelle Papierzufuhr"
 
@@ -4381,6 +4396,9 @@
 msgid "SSL/TLS Negotiation Error"
 msgstr "SSL/TLS Verhandlungsfehler"
 
+msgid "Second Roll (DUO/Twin Only)"
+msgstr ""
+
 msgid "See Other"
 msgstr "Siehe auch"
 
@@ -6510,6 +6528,14 @@
 msgid "finishing-template.trim-after-pages"
 msgstr ""
 
+#. TRANSLATORS: Trim After Every Set
+msgid "finishing-template.trim-after-sets"
+msgstr ""
+
+#. TRANSLATORS: Trim After Every Page
+msgid "finishing-template.trim-after-sheets"
+msgstr ""
+
 #. TRANSLATORS: Finishings
 msgid "finishings"
 msgstr ""
@@ -8843,6 +8869,58 @@
 msgid "media-type.cd"
 msgstr ""
 
+#. TRANSLATORS: Photo Advanced Paper
+msgid "media-type.com.hp.advanced-photo"
+msgstr ""
+
+#. TRANSLATORS: Brochure Glossy Paper
+msgid "media-type.com.hp.brochure-glossy"
+msgstr ""
+
+#. TRANSLATORS: Brochure Matte Paper
+msgid "media-type.com.hp.brochure-matte"
+msgstr ""
+
+#. TRANSLATORS: Matte Coverstock
+msgid "media-type.com.hp.cover-matte"
+msgstr ""
+
+#. TRANSLATORS: EcoSMART Lite Paper
+msgid "media-type.com.hp.ecosmart-lite"
+msgstr ""
+
+#. TRANSLATORS: Everyday Glossy Paper
+msgid "media-type.com.hp.everyday-glossy"
+msgstr ""
+
+#. TRANSLATORS: Everyday Matte Paper
+msgid "media-type.com.hp.everyday-matte"
+msgstr ""
+
+#. TRANSLATORS: Extra Heavyweight Paper
+msgid "media-type.com.hp.extra-heavy"
+msgstr ""
+
+#. TRANSLATORS: Intermediate Paper
+msgid "media-type.com.hp.intermediate"
+msgstr ""
+
+#. TRANSLATORS: Mid-Weight Paper
+msgid "media-type.com.hp.mid-weight"
+msgstr ""
+
+#. TRANSLATORS: Inkjet Premium Paper
+msgid "media-type.com.hp.premium-inkjet"
+msgstr ""
+
+#. TRANSLATORS: Photo Premium Paper
+msgid "media-type.com.hp.premium-photo"
+msgstr ""
+
+#. TRANSLATORS: Premium Matte Presentation Paper
+msgid "media-type.com.hp.premium-presentation-matte"
+msgstr ""
+
 #. TRANSLATORS: Continuous
 msgid "media-type.continuous"
 msgstr ""
@@ -9035,6 +9113,22 @@
 msgid "media-type.imaging-cylinder"
 msgstr ""
 
+#. TRANSLATORS: Photo Paper Plus Glossy II
+msgid "media-type.jp.co.canon-photo-paper-plus-glossy-ii"
+msgstr ""
+
+#. TRANSLATORS: Photo Paper Pro Platinum
+msgid "media-type.jp.co.canon-photo-paper-pro-platinum"
+msgstr ""
+
+#. TRANSLATORS: Photo Paper Plus Glossy II
+msgid "media-type.jp.co.canon_photo-paper-plus-glossy-ii"
+msgstr ""
+
+#. TRANSLATORS: Photo Paper Pro Platinum
+msgid "media-type.jp.co.canon_photo-paper-pro-platinum"
+msgstr ""
+
 #. TRANSLATORS: Labels
 msgid "media-type.labels"
 msgstr ""
@@ -15034,6 +15128,9 @@
 #~ msgstr ""
 #~ "Ein Samba-Benutzername ist erforderlich, um Druckertreiber zu exportieren"
 
+#~ msgid "Dymo"
+#~ msgstr "Dymo"
+
 #~ msgid "Export Printers to Samba"
 #~ msgstr "Drucker zu Samba exportieren"
 
diff --git a/locale/cups_en.po b/locale/cups_en.po
index fdb34d6..fd7ea0a 100644
--- a/locale/cups_en.po
+++ b/locale/cups_en.po
@@ -24,7 +24,7 @@
 msgstr ""
 "Project-Id-Version: CUPS 2.3.0\n"
 "Report-Msgid-Bugs-To: https://github.com/apple/cups/issues\n"
-"POT-Creation-Date: 2019-08-23 09:13-0400\n"
+"POT-Creation-Date: 2019-12-18 20:19-0500\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: English\n"
@@ -1599,6 +1599,9 @@
 msgid "--not expression        Unary NOT of expression"
 msgstr "--not expression        Unary NOT of expression"
 
+msgid "--pam-service service   Use the named PAM service"
+msgstr ""
+
 msgid "--path regex            Match resource path to regular expression"
 msgstr "--path regex            Match resource path to regular expression"
 
@@ -1774,6 +1777,9 @@
 msgid "-95"
 msgstr "-95"
 
+msgid "-A                      Enable authentication"
+msgstr ""
+
 msgid "-C                      Send requests using chunking (default)"
 msgstr "-C                      Send requests using chunking (default)"
 
@@ -1955,6 +1961,9 @@
 msgstr ""
 "-d destination          Set the named destination as the server default"
 
+msgid "-d destination          Specify the destination"
+msgstr ""
+
 msgid "-d name=value           Set named variable to value"
 msgstr "-d name=value           Set named variable to value"
 
@@ -2596,6 +2605,9 @@
 msgid "300dpi"
 msgstr "300dpi"
 
+msgid "30859 Paint Can Label"
+msgstr ""
+
 msgid "35"
 msgstr "35"
 
@@ -3245,6 +3257,9 @@
 msgid "Cutter"
 msgstr "Cutter"
 
+msgid "DYMO"
+msgstr ""
+
 msgid "Dark"
 msgstr "Dark"
 
@@ -3334,9 +3349,6 @@
 msgid "Duplexer"
 msgstr "Duplexer"
 
-msgid "Dymo"
-msgstr "Dymo"
-
 msgid "EPL1 Label Printer"
 msgstr "EPL1 Label Printer"
 
@@ -3994,6 +4006,9 @@
 msgid "Looking for printer."
 msgstr "Looking for printer."
 
+msgid "Main Roll"
+msgstr ""
+
 msgid "Manual Feed"
 msgstr "Manual Feed"
 
@@ -4530,6 +4545,9 @@
 msgid "SSL/TLS Negotiation Error"
 msgstr "SSL/TLS Negotiation Error"
 
+msgid "Second Roll (DUO/Twin Only)"
+msgstr ""
+
 msgid "See Other"
 msgstr "See Other"
 
@@ -6678,6 +6696,14 @@
 msgid "finishing-template.trim-after-pages"
 msgstr "Trim After Every Page"
 
+#. TRANSLATORS: Trim After Every Set
+msgid "finishing-template.trim-after-sets"
+msgstr "Trim After Every Set"
+
+#. TRANSLATORS: Trim After Every Page
+msgid "finishing-template.trim-after-sheets"
+msgstr "Trim After Every Page"
+
 #. TRANSLATORS: Finishings
 msgid "finishings"
 msgstr "Finishings"
@@ -9022,6 +9048,58 @@
 msgid "media-type.cd"
 msgstr "CD"
 
+#. TRANSLATORS: Photo Advanced Paper
+msgid "media-type.com.hp.advanced-photo"
+msgstr "Photo Advanced Paper"
+
+#. TRANSLATORS: Brochure Glossy Paper
+msgid "media-type.com.hp.brochure-glossy"
+msgstr "Brochure Glossy Paper"
+
+#. TRANSLATORS: Brochure Matte Paper
+msgid "media-type.com.hp.brochure-matte"
+msgstr "Brochure Matte Paper"
+
+#. TRANSLATORS: Matte Coverstock
+msgid "media-type.com.hp.cover-matte"
+msgstr "Matte Coverstock"
+
+#. TRANSLATORS: EcoSMART Lite Paper
+msgid "media-type.com.hp.ecosmart-lite"
+msgstr "EcoSMART Lite Paper"
+
+#. TRANSLATORS: Everyday Glossy Paper
+msgid "media-type.com.hp.everyday-glossy"
+msgstr "Everyday Glossy Paper"
+
+#. TRANSLATORS: Everyday Matte Paper
+msgid "media-type.com.hp.everyday-matte"
+msgstr "Everyday Matte Paper"
+
+#. TRANSLATORS: Extra Heavyweight Paper
+msgid "media-type.com.hp.extra-heavy"
+msgstr "Extra Heavyweight Paper"
+
+#. TRANSLATORS: Intermediate Paper
+msgid "media-type.com.hp.intermediate"
+msgstr "Intermediate Paper"
+
+#. TRANSLATORS: Mid-Weight Paper
+msgid "media-type.com.hp.mid-weight"
+msgstr "Mid-Weight Paper"
+
+#. TRANSLATORS: Inkjet Premium Paper
+msgid "media-type.com.hp.premium-inkjet"
+msgstr "Inkjet Premium Paper"
+
+#. TRANSLATORS: Photo Premium Paper
+msgid "media-type.com.hp.premium-photo"
+msgstr "Photo Premium Paper"
+
+#. TRANSLATORS: Premium Matte Presentation Paper
+msgid "media-type.com.hp.premium-presentation-matte"
+msgstr "Premium Matte Presentation Paper"
+
 #. TRANSLATORS: Continuous
 msgid "media-type.continuous"
 msgstr "Continuous"
@@ -9214,6 +9292,22 @@
 msgid "media-type.imaging-cylinder"
 msgstr "Imaging Cylinder"
 
+#. TRANSLATORS: Photo Paper Plus Glossy II
+msgid "media-type.jp.co.canon-photo-paper-plus-glossy-ii"
+msgstr "Photo Paper Plus Glossy II"
+
+#. TRANSLATORS: Photo Paper Pro Platinum
+msgid "media-type.jp.co.canon-photo-paper-pro-platinum"
+msgstr "Photo Paper Pro Platinum"
+
+#. TRANSLATORS: Photo Paper Plus Glossy II
+msgid "media-type.jp.co.canon_photo-paper-plus-glossy-ii"
+msgstr "Photo Paper Plus Glossy II"
+
+#. TRANSLATORS: Photo Paper Pro Platinum
+msgid "media-type.jp.co.canon_photo-paper-pro-platinum"
+msgstr "Photo Paper Pro Platinum"
+
 #. TRANSLATORS: Labels
 msgid "media-type.labels"
 msgstr "Labels"
@@ -12870,15 +12964,15 @@
 msgid "printer-state-reasons.marker-opc-missing"
 msgstr "OPC missing"
 
-#. TRANSLATORS: Print ribbon Almost Empty
+#. TRANSLATORS: Marker Print Ribbon Almost Empty
 msgid "printer-state-reasons.marker-print-ribbon-almost-empty"
 msgstr "Print ribbon Almost Empty"
 
-#. TRANSLATORS: Print ribbon Empty
+#. TRANSLATORS: Marker Print Ribbon Empty
 msgid "printer-state-reasons.marker-print-ribbon-empty"
 msgstr "Print ribbon Empty"
 
-#. TRANSLATORS: Print ribbon Missing
+#. TRANSLATORS: Marker Print Ribbon Missing
 msgid "printer-state-reasons.marker-print-ribbon-missing"
 msgstr "Print ribbon missing"
 
@@ -15210,3 +15304,6 @@
 
 msgid "~/.cups/lpoptions file names default destination that does not exist."
 msgstr "~/.cups/lpoptions file names default destination that does not exist."
+
+#~ msgid "Dymo"
+#~ msgstr "Dymo"
diff --git a/locale/cups_es.po b/locale/cups_es.po
index 6bf4831..3a31f4d 100644
--- a/locale/cups_es.po
+++ b/locale/cups_es.po
@@ -11,7 +11,7 @@
 msgstr ""
 "Project-Id-Version: CUPS 2.3\n"
 "Report-Msgid-Bugs-To: https://github.com/apple/cups/issues\n"
-"POT-Creation-Date: 2019-08-23 09:13-0400\n"
+"POT-Creation-Date: 2019-12-18 20:19-0500\n"
 "PO-Revision-Date: 2016-06-26 21:17+0100\n"
 "Last-Translator: Juan Pablo González Riopedre <jpgriopedre@yahoo.es>\n"
 "Language-Team: Spanish\n"
@@ -1582,6 +1582,9 @@
 msgid "--not expression        Unary NOT of expression"
 msgstr ""
 
+msgid "--pam-service service   Use the named PAM service"
+msgstr ""
+
 msgid "--path regex            Match resource path to regular expression"
 msgstr ""
 
@@ -1752,6 +1755,9 @@
 msgid "-95"
 msgstr "-95"
 
+msgid "-A                      Enable authentication"
+msgstr ""
+
 msgid "-C                      Send requests using chunking (default)"
 msgstr ""
 
@@ -1923,6 +1929,9 @@
 msgid "-d destination          Set the named destination as the server default"
 msgstr ""
 
+msgid "-d destination          Specify the destination"
+msgstr ""
+
 msgid "-d name=value           Set named variable to value"
 msgstr ""
 
@@ -2532,6 +2541,9 @@
 msgid "300dpi"
 msgstr "300ppp"
 
+msgid "30859 Paint Can Label"
+msgstr ""
+
 msgid "35"
 msgstr "35"
 
@@ -3182,6 +3194,9 @@
 msgid "Cutter"
 msgstr "Cortadora"
 
+msgid "DYMO"
+msgstr ""
+
 msgid "Dark"
 msgstr "Oscuro"
 
@@ -3271,9 +3286,6 @@
 msgid "Duplexer"
 msgstr "Unidad de impresión dúplex"
 
-msgid "Dymo"
-msgstr "Dymo"
-
 msgid "EPL1 Label Printer"
 msgstr "Impresora de etiquetas EPL1"
 
@@ -3928,6 +3940,9 @@
 msgid "Looking for printer."
 msgstr ""
 
+msgid "Main Roll"
+msgstr ""
+
 msgid "Manual Feed"
 msgstr "Alimentación manual"
 
@@ -4465,6 +4480,9 @@
 msgid "SSL/TLS Negotiation Error"
 msgstr "Error en negociación SSL/TLS"
 
+msgid "Second Roll (DUO/Twin Only)"
+msgstr ""
+
 msgid "See Other"
 msgstr "Ver otros"
 
@@ -6612,6 +6630,14 @@
 msgid "finishing-template.trim-after-pages"
 msgstr ""
 
+#. TRANSLATORS: Trim After Every Set
+msgid "finishing-template.trim-after-sets"
+msgstr ""
+
+#. TRANSLATORS: Trim After Every Page
+msgid "finishing-template.trim-after-sheets"
+msgstr ""
+
 #. TRANSLATORS: Finishings
 msgid "finishings"
 msgstr ""
@@ -8953,6 +8979,58 @@
 msgid "media-type.cd"
 msgstr ""
 
+#. TRANSLATORS: Photo Advanced Paper
+msgid "media-type.com.hp.advanced-photo"
+msgstr ""
+
+#. TRANSLATORS: Brochure Glossy Paper
+msgid "media-type.com.hp.brochure-glossy"
+msgstr ""
+
+#. TRANSLATORS: Brochure Matte Paper
+msgid "media-type.com.hp.brochure-matte"
+msgstr ""
+
+#. TRANSLATORS: Matte Coverstock
+msgid "media-type.com.hp.cover-matte"
+msgstr ""
+
+#. TRANSLATORS: EcoSMART Lite Paper
+msgid "media-type.com.hp.ecosmart-lite"
+msgstr ""
+
+#. TRANSLATORS: Everyday Glossy Paper
+msgid "media-type.com.hp.everyday-glossy"
+msgstr ""
+
+#. TRANSLATORS: Everyday Matte Paper
+msgid "media-type.com.hp.everyday-matte"
+msgstr ""
+
+#. TRANSLATORS: Extra Heavyweight Paper
+msgid "media-type.com.hp.extra-heavy"
+msgstr ""
+
+#. TRANSLATORS: Intermediate Paper
+msgid "media-type.com.hp.intermediate"
+msgstr ""
+
+#. TRANSLATORS: Mid-Weight Paper
+msgid "media-type.com.hp.mid-weight"
+msgstr ""
+
+#. TRANSLATORS: Inkjet Premium Paper
+msgid "media-type.com.hp.premium-inkjet"
+msgstr ""
+
+#. TRANSLATORS: Photo Premium Paper
+msgid "media-type.com.hp.premium-photo"
+msgstr ""
+
+#. TRANSLATORS: Premium Matte Presentation Paper
+msgid "media-type.com.hp.premium-presentation-matte"
+msgstr ""
+
 #. TRANSLATORS: Continuous
 msgid "media-type.continuous"
 msgstr ""
@@ -9145,6 +9223,22 @@
 msgid "media-type.imaging-cylinder"
 msgstr ""
 
+#. TRANSLATORS: Photo Paper Plus Glossy II
+msgid "media-type.jp.co.canon-photo-paper-plus-glossy-ii"
+msgstr ""
+
+#. TRANSLATORS: Photo Paper Pro Platinum
+msgid "media-type.jp.co.canon-photo-paper-pro-platinum"
+msgstr ""
+
+#. TRANSLATORS: Photo Paper Plus Glossy II
+msgid "media-type.jp.co.canon_photo-paper-plus-glossy-ii"
+msgstr ""
+
+#. TRANSLATORS: Photo Paper Pro Platinum
+msgid "media-type.jp.co.canon_photo-paper-pro-platinum"
+msgstr ""
+
 #. TRANSLATORS: Labels
 msgid "media-type.labels"
 msgstr ""
@@ -15172,6 +15266,9 @@
 #~ "Se requiere un nombre de usuario Samba para exportar los controladores de "
 #~ "impresora"
 
+#~ msgid "Dymo"
+#~ msgstr "Dymo"
+
 #~ msgid "Export Printers to Samba"
 #~ msgstr "Exportar impresoras a Samba"
 
diff --git a/locale/cups_fr.po b/locale/cups_fr.po
index f965def..7d22828 100644
--- a/locale/cups_fr.po
+++ b/locale/cups_fr.po
@@ -11,7 +11,7 @@
 msgstr ""
 "Project-Id-Version: CUPS 2.3\n"
 "Report-Msgid-Bugs-To: https://github.com/apple/cups/issues\n"
-"POT-Creation-Date: 2019-08-23 09:13-0400\n"
+"POT-Creation-Date: 2019-12-18 20:19-0500\n"
 "PO-Revision-Date: 2012-12-12 11:12+0100\n"
 "Last-Translator: Stéphane Blondon <stephane.blondon@gmail.com>\n"
 "Language-Team: French <LL@li.org>\n"
@@ -1439,6 +1439,9 @@
 msgid "--not expression        Unary NOT of expression"
 msgstr ""
 
+msgid "--pam-service service   Use the named PAM service"
+msgstr ""
+
 msgid "--path regex            Match resource path to regular expression"
 msgstr ""
 
@@ -1609,6 +1612,9 @@
 msgid "-95"
 msgstr "-95"
 
+msgid "-A                      Enable authentication"
+msgstr ""
+
 msgid "-C                      Send requests using chunking (default)"
 msgstr ""
 
@@ -1780,6 +1786,9 @@
 msgid "-d destination          Set the named destination as the server default"
 msgstr ""
 
+msgid "-d destination          Specify the destination"
+msgstr ""
+
 msgid "-d name=value           Set named variable to value"
 msgstr ""
 
@@ -2389,6 +2398,9 @@
 msgid "300dpi"
 msgstr "300 ppp"
 
+msgid "30859 Paint Can Label"
+msgstr ""
+
 msgid "35"
 msgstr "35"
 
@@ -3035,6 +3047,9 @@
 msgid "Cutter"
 msgstr "Cutter"
 
+msgid "DYMO"
+msgstr ""
+
 msgid "Dark"
 msgstr "Foncé"
 
@@ -3120,9 +3135,6 @@
 msgid "Duplexer"
 msgstr "Duplexeur"
 
-msgid "Dymo"
-msgstr "Dymo"
-
 msgid "EPL1 Label Printer"
 msgstr "Imprimante pour étiquettes EPL1"
 
@@ -3775,6 +3787,9 @@
 msgid "Looking for printer."
 msgstr "Recherche d'imprimante en cours."
 
+msgid "Main Roll"
+msgstr ""
+
 msgid "Manual Feed"
 msgstr ""
 
@@ -4306,6 +4321,9 @@
 msgid "SSL/TLS Negotiation Error"
 msgstr "Erreur de négotiation SSL/TLS"
 
+msgid "Second Roll (DUO/Twin Only)"
+msgstr ""
+
 msgid "See Other"
 msgstr "Autres"
 
@@ -6412,6 +6430,14 @@
 msgid "finishing-template.trim-after-pages"
 msgstr ""
 
+#. TRANSLATORS: Trim After Every Set
+msgid "finishing-template.trim-after-sets"
+msgstr ""
+
+#. TRANSLATORS: Trim After Every Page
+msgid "finishing-template.trim-after-sheets"
+msgstr ""
+
 #. TRANSLATORS: Finishings
 msgid "finishings"
 msgstr ""
@@ -8738,6 +8764,58 @@
 msgid "media-type.cd"
 msgstr ""
 
+#. TRANSLATORS: Photo Advanced Paper
+msgid "media-type.com.hp.advanced-photo"
+msgstr ""
+
+#. TRANSLATORS: Brochure Glossy Paper
+msgid "media-type.com.hp.brochure-glossy"
+msgstr ""
+
+#. TRANSLATORS: Brochure Matte Paper
+msgid "media-type.com.hp.brochure-matte"
+msgstr ""
+
+#. TRANSLATORS: Matte Coverstock
+msgid "media-type.com.hp.cover-matte"
+msgstr ""
+
+#. TRANSLATORS: EcoSMART Lite Paper
+msgid "media-type.com.hp.ecosmart-lite"
+msgstr ""
+
+#. TRANSLATORS: Everyday Glossy Paper
+msgid "media-type.com.hp.everyday-glossy"
+msgstr ""
+
+#. TRANSLATORS: Everyday Matte Paper
+msgid "media-type.com.hp.everyday-matte"
+msgstr ""
+
+#. TRANSLATORS: Extra Heavyweight Paper
+msgid "media-type.com.hp.extra-heavy"
+msgstr ""
+
+#. TRANSLATORS: Intermediate Paper
+msgid "media-type.com.hp.intermediate"
+msgstr ""
+
+#. TRANSLATORS: Mid-Weight Paper
+msgid "media-type.com.hp.mid-weight"
+msgstr ""
+
+#. TRANSLATORS: Inkjet Premium Paper
+msgid "media-type.com.hp.premium-inkjet"
+msgstr ""
+
+#. TRANSLATORS: Photo Premium Paper
+msgid "media-type.com.hp.premium-photo"
+msgstr ""
+
+#. TRANSLATORS: Premium Matte Presentation Paper
+msgid "media-type.com.hp.premium-presentation-matte"
+msgstr ""
+
 #. TRANSLATORS: Continuous
 msgid "media-type.continuous"
 msgstr ""
@@ -8930,6 +9008,22 @@
 msgid "media-type.imaging-cylinder"
 msgstr ""
 
+#. TRANSLATORS: Photo Paper Plus Glossy II
+msgid "media-type.jp.co.canon-photo-paper-plus-glossy-ii"
+msgstr ""
+
+#. TRANSLATORS: Photo Paper Pro Platinum
+msgid "media-type.jp.co.canon-photo-paper-pro-platinum"
+msgstr ""
+
+#. TRANSLATORS: Photo Paper Plus Glossy II
+msgid "media-type.jp.co.canon_photo-paper-plus-glossy-ii"
+msgstr ""
+
+#. TRANSLATORS: Photo Paper Pro Platinum
+msgid "media-type.jp.co.canon_photo-paper-pro-platinum"
+msgstr ""
+
 #. TRANSLATORS: Labels
 msgid "media-type.labels"
 msgstr ""
@@ -14921,5 +15015,8 @@
 msgid "~/.cups/lpoptions file names default destination that does not exist."
 msgstr ""
 
+#~ msgid "Dymo"
+#~ msgstr "Dymo"
+
 #~ msgid "Export Printers to Samba"
 #~ msgstr "Exporter les imprimantes vers SAMBA"
diff --git a/locale/cups_it.po b/locale/cups_it.po
index ff5e45f..90bcb38 100644
--- a/locale/cups_it.po
+++ b/locale/cups_it.po
@@ -12,7 +12,7 @@
 msgstr ""
 "Project-Id-Version: CUPS 2.3\n"
 "Report-Msgid-Bugs-To: https://github.com/apple/cups/issues\n"
-"POT-Creation-Date: 2019-08-23 09:13-0400\n"
+"POT-Creation-Date: 2019-12-18 20:19-0500\n"
 "PO-Revision-Date: 2013-07-14 12:00+0200\n"
 "Last-Translator: Giovanni Scafora <giovanni@archlinux.org>\n"
 "Language-Team: Italian - Arch Linux Italian Team <giovanni@archlinux.org>\n"
@@ -1579,6 +1579,9 @@
 msgid "--not expression        Unary NOT of expression"
 msgstr ""
 
+msgid "--pam-service service   Use the named PAM service"
+msgstr ""
+
 msgid "--path regex            Match resource path to regular expression"
 msgstr ""
 
@@ -1749,6 +1752,9 @@
 msgid "-95"
 msgstr "-95"
 
+msgid "-A                      Enable authentication"
+msgstr ""
+
 msgid "-C                      Send requests using chunking (default)"
 msgstr ""
 
@@ -1920,6 +1926,9 @@
 msgid "-d destination          Set the named destination as the server default"
 msgstr ""
 
+msgid "-d destination          Specify the destination"
+msgstr ""
+
 msgid "-d name=value           Set named variable to value"
 msgstr ""
 
@@ -2529,6 +2538,9 @@
 msgid "300dpi"
 msgstr "300dpi"
 
+msgid "30859 Paint Can Label"
+msgstr ""
+
 msgid "35"
 msgstr "35"
 
@@ -3178,6 +3190,9 @@
 msgid "Cutter"
 msgstr "Taglierino"
 
+msgid "DYMO"
+msgstr ""
+
 msgid "Dark"
 msgstr "Scuro"
 
@@ -3268,9 +3283,6 @@
 msgid "Duplexer"
 msgstr "Duplexer"
 
-msgid "Dymo"
-msgstr "Dymo"
-
 msgid "EPL1 Label Printer"
 msgstr "EPL1 Label Printer"
 
@@ -3925,6 +3937,9 @@
 msgid "Looking for printer."
 msgstr "Cerca una stampante."
 
+msgid "Main Roll"
+msgstr ""
+
 msgid "Manual Feed"
 msgstr "Alimentazione manuale"
 
@@ -4462,6 +4477,9 @@
 msgid "SSL/TLS Negotiation Error"
 msgstr "Errore di negoziazione SSL/TLS"
 
+msgid "Second Roll (DUO/Twin Only)"
+msgstr ""
+
 msgid "See Other"
 msgstr "Vedi altro"
 
@@ -6597,6 +6615,14 @@
 msgid "finishing-template.trim-after-pages"
 msgstr ""
 
+#. TRANSLATORS: Trim After Every Set
+msgid "finishing-template.trim-after-sets"
+msgstr ""
+
+#. TRANSLATORS: Trim After Every Page
+msgid "finishing-template.trim-after-sheets"
+msgstr ""
+
 #. TRANSLATORS: Finishings
 msgid "finishings"
 msgstr ""
@@ -8935,6 +8961,58 @@
 msgid "media-type.cd"
 msgstr ""
 
+#. TRANSLATORS: Photo Advanced Paper
+msgid "media-type.com.hp.advanced-photo"
+msgstr ""
+
+#. TRANSLATORS: Brochure Glossy Paper
+msgid "media-type.com.hp.brochure-glossy"
+msgstr ""
+
+#. TRANSLATORS: Brochure Matte Paper
+msgid "media-type.com.hp.brochure-matte"
+msgstr ""
+
+#. TRANSLATORS: Matte Coverstock
+msgid "media-type.com.hp.cover-matte"
+msgstr ""
+
+#. TRANSLATORS: EcoSMART Lite Paper
+msgid "media-type.com.hp.ecosmart-lite"
+msgstr ""
+
+#. TRANSLATORS: Everyday Glossy Paper
+msgid "media-type.com.hp.everyday-glossy"
+msgstr ""
+
+#. TRANSLATORS: Everyday Matte Paper
+msgid "media-type.com.hp.everyday-matte"
+msgstr ""
+
+#. TRANSLATORS: Extra Heavyweight Paper
+msgid "media-type.com.hp.extra-heavy"
+msgstr ""
+
+#. TRANSLATORS: Intermediate Paper
+msgid "media-type.com.hp.intermediate"
+msgstr ""
+
+#. TRANSLATORS: Mid-Weight Paper
+msgid "media-type.com.hp.mid-weight"
+msgstr ""
+
+#. TRANSLATORS: Inkjet Premium Paper
+msgid "media-type.com.hp.premium-inkjet"
+msgstr ""
+
+#. TRANSLATORS: Photo Premium Paper
+msgid "media-type.com.hp.premium-photo"
+msgstr ""
+
+#. TRANSLATORS: Premium Matte Presentation Paper
+msgid "media-type.com.hp.premium-presentation-matte"
+msgstr ""
+
 #. TRANSLATORS: Continuous
 msgid "media-type.continuous"
 msgstr ""
@@ -9127,6 +9205,22 @@
 msgid "media-type.imaging-cylinder"
 msgstr ""
 
+#. TRANSLATORS: Photo Paper Plus Glossy II
+msgid "media-type.jp.co.canon-photo-paper-plus-glossy-ii"
+msgstr ""
+
+#. TRANSLATORS: Photo Paper Pro Platinum
+msgid "media-type.jp.co.canon-photo-paper-pro-platinum"
+msgstr ""
+
+#. TRANSLATORS: Photo Paper Plus Glossy II
+msgid "media-type.jp.co.canon_photo-paper-plus-glossy-ii"
+msgstr ""
+
+#. TRANSLATORS: Photo Paper Pro Platinum
+msgid "media-type.jp.co.canon_photo-paper-pro-platinum"
+msgstr ""
+
 #. TRANSLATORS: Labels
 msgid "media-type.labels"
 msgstr ""
@@ -15151,6 +15245,9 @@
 #~ msgstr ""
 #~ "Per esportare i driver della stampante è richiesto un username di Samba"
 
+#~ msgid "Dymo"
+#~ msgstr "Dymo"
+
 #~ msgid "Export Printers to Samba"
 #~ msgstr "Esporta le stampanti per Samba"
 
diff --git a/locale/cups_ja.po b/locale/cups_ja.po
index b47e7f1..a287be2 100644
--- a/locale/cups_ja.po
+++ b/locale/cups_ja.po
@@ -11,7 +11,7 @@
 msgstr ""
 "Project-Id-Version: CUPS 2.3\n"
 "Report-Msgid-Bugs-To: https://github.com/apple/cups/issues\n"
-"POT-Creation-Date: 2019-08-23 09:13-0400\n"
+"POT-Creation-Date: 2019-12-18 20:19-0500\n"
 "PO-Revision-Date: 2014-11-15 19:27+0900\n"
 "Last-Translator: OPFC TRANSCUPS <opfc-transcups@sourceforge.jp>\n"
 "Language-Team: Japanese - OPFC TRANSCUPS <opfc-transcups@sourceforge.jp>\n"
@@ -1573,6 +1573,9 @@
 msgid "--not expression        Unary NOT of expression"
 msgstr ""
 
+msgid "--pam-service service   Use the named PAM service"
+msgstr ""
+
 msgid "--path regex            Match resource path to regular expression"
 msgstr ""
 
@@ -1743,6 +1746,9 @@
 msgid "-95"
 msgstr "-95"
 
+msgid "-A                      Enable authentication"
+msgstr ""
+
 msgid "-C                      Send requests using chunking (default)"
 msgstr ""
 
@@ -1914,6 +1920,9 @@
 msgid "-d destination          Set the named destination as the server default"
 msgstr ""
 
+msgid "-d destination          Specify the destination"
+msgstr ""
+
 msgid "-d name=value           Set named variable to value"
 msgstr ""
 
@@ -2523,6 +2532,9 @@
 msgid "300dpi"
 msgstr "300dpi"
 
+msgid "30859 Paint Can Label"
+msgstr ""
+
 msgid "35"
 msgstr "35"
 
@@ -3172,6 +3184,9 @@
 msgid "Cutter"
 msgstr "カッター"
 
+msgid "DYMO"
+msgstr ""
+
 msgid "Dark"
 msgstr "濃い"
 
@@ -3264,9 +3279,6 @@
 msgid "Duplexer"
 msgstr "両面オプション"
 
-msgid "Dymo"
-msgstr "Dymo"
-
 msgid "EPL1 Label Printer"
 msgstr "EPL1 ラベルプリンター"
 
@@ -3923,6 +3935,9 @@
 msgid "Looking for printer."
 msgstr "プリンターを探しています。"
 
+msgid "Main Roll"
+msgstr ""
+
 msgid "Manual Feed"
 msgstr "手差し"
 
@@ -4458,6 +4473,9 @@
 msgid "SSL/TLS Negotiation Error"
 msgstr "SSL/TLS のネゴシエーションエラー"
 
+msgid "Second Roll (DUO/Twin Only)"
+msgstr ""
+
 msgid "See Other"
 msgstr "残りを見てください"
 
@@ -6580,6 +6598,14 @@
 msgid "finishing-template.trim-after-pages"
 msgstr ""
 
+#. TRANSLATORS: Trim After Every Set
+msgid "finishing-template.trim-after-sets"
+msgstr ""
+
+#. TRANSLATORS: Trim After Every Page
+msgid "finishing-template.trim-after-sheets"
+msgstr ""
+
 #. TRANSLATORS: Finishings
 msgid "finishings"
 msgstr ""
@@ -8927,6 +8953,58 @@
 msgid "media-type.cd"
 msgstr ""
 
+#. TRANSLATORS: Photo Advanced Paper
+msgid "media-type.com.hp.advanced-photo"
+msgstr ""
+
+#. TRANSLATORS: Brochure Glossy Paper
+msgid "media-type.com.hp.brochure-glossy"
+msgstr ""
+
+#. TRANSLATORS: Brochure Matte Paper
+msgid "media-type.com.hp.brochure-matte"
+msgstr ""
+
+#. TRANSLATORS: Matte Coverstock
+msgid "media-type.com.hp.cover-matte"
+msgstr ""
+
+#. TRANSLATORS: EcoSMART Lite Paper
+msgid "media-type.com.hp.ecosmart-lite"
+msgstr ""
+
+#. TRANSLATORS: Everyday Glossy Paper
+msgid "media-type.com.hp.everyday-glossy"
+msgstr ""
+
+#. TRANSLATORS: Everyday Matte Paper
+msgid "media-type.com.hp.everyday-matte"
+msgstr ""
+
+#. TRANSLATORS: Extra Heavyweight Paper
+msgid "media-type.com.hp.extra-heavy"
+msgstr ""
+
+#. TRANSLATORS: Intermediate Paper
+msgid "media-type.com.hp.intermediate"
+msgstr ""
+
+#. TRANSLATORS: Mid-Weight Paper
+msgid "media-type.com.hp.mid-weight"
+msgstr ""
+
+#. TRANSLATORS: Inkjet Premium Paper
+msgid "media-type.com.hp.premium-inkjet"
+msgstr ""
+
+#. TRANSLATORS: Photo Premium Paper
+msgid "media-type.com.hp.premium-photo"
+msgstr ""
+
+#. TRANSLATORS: Premium Matte Presentation Paper
+msgid "media-type.com.hp.premium-presentation-matte"
+msgstr ""
+
 #. TRANSLATORS: Continuous
 msgid "media-type.continuous"
 msgstr ""
@@ -9119,6 +9197,22 @@
 msgid "media-type.imaging-cylinder"
 msgstr ""
 
+#. TRANSLATORS: Photo Paper Plus Glossy II
+msgid "media-type.jp.co.canon-photo-paper-plus-glossy-ii"
+msgstr ""
+
+#. TRANSLATORS: Photo Paper Pro Platinum
+msgid "media-type.jp.co.canon-photo-paper-pro-platinum"
+msgstr ""
+
+#. TRANSLATORS: Photo Paper Plus Glossy II
+msgid "media-type.jp.co.canon_photo-paper-plus-glossy-ii"
+msgstr ""
+
+#. TRANSLATORS: Photo Paper Pro Platinum
+msgid "media-type.jp.co.canon_photo-paper-pro-platinum"
+msgstr ""
+
 #. TRANSLATORS: Labels
 msgid "media-type.labels"
 msgstr ""
@@ -15169,6 +15263,9 @@
 #~ msgstr ""
 #~ "プリンタードライバーをエクスポートするには、Samba のユーザー名が必要です。"
 
+#~ msgid "Dymo"
+#~ msgstr "Dymo"
+
 #~ msgid "Export Printers to Samba"
 #~ msgstr "Samba へプリンターをエクスポート"
 
diff --git a/locale/cups_pt_BR.po b/locale/cups_pt_BR.po
index e5fd768..cdb4392 100644
--- a/locale/cups_pt_BR.po
+++ b/locale/cups_pt_BR.po
@@ -22,7 +22,7 @@
 msgstr ""
 "Project-Id-Version: CUPS 2.3\n"
 "Report-Msgid-Bugs-To: https://github.com/apple/cups/issues\n"
-"POT-Creation-Date: 2019-08-23 09:13-0400\n"
+"POT-Creation-Date: 2019-12-18 20:19-0500\n"
 "PO-Revision-Date: 2016-01-31 16:45-0200\n"
 "Last-Translator: Rafael Fontenelle <rffontenelle@gmail.com>\n"
 "Language-Team: Brazilian Portuguese <traducao-cups-pt-br@googlegroups.com>\n"
@@ -1586,6 +1586,9 @@
 msgid "--not expression        Unary NOT of expression"
 msgstr ""
 
+msgid "--pam-service service   Use the named PAM service"
+msgstr ""
+
 msgid "--path regex            Match resource path to regular expression"
 msgstr ""
 
@@ -1756,6 +1759,9 @@
 msgid "-95"
 msgstr "-95"
 
+msgid "-A                      Enable authentication"
+msgstr ""
+
 msgid "-C                      Send requests using chunking (default)"
 msgstr ""
 
@@ -1927,6 +1933,9 @@
 msgid "-d destination          Set the named destination as the server default"
 msgstr ""
 
+msgid "-d destination          Specify the destination"
+msgstr ""
+
 msgid "-d name=value           Set named variable to value"
 msgstr ""
 
@@ -2536,6 +2545,9 @@
 msgid "300dpi"
 msgstr "300dpi"
 
+msgid "30859 Paint Can Label"
+msgstr ""
+
 msgid "35"
 msgstr "35"
 
@@ -3186,6 +3198,9 @@
 msgid "Cutter"
 msgstr "Cortador"
 
+msgid "DYMO"
+msgstr ""
+
 msgid "Dark"
 msgstr "Escuro"
 
@@ -3275,9 +3290,6 @@
 msgid "Duplexer"
 msgstr "Duplexador"
 
-msgid "Dymo"
-msgstr "Dymo"
-
 msgid "EPL1 Label Printer"
 msgstr "Impressora de etiqueta EPL1"
 
@@ -3932,6 +3944,9 @@
 msgid "Looking for printer."
 msgstr "Procurando impressoras."
 
+msgid "Main Roll"
+msgstr ""
+
 msgid "Manual Feed"
 msgstr "Alimentação manual"
 
@@ -4470,6 +4485,9 @@
 msgid "SSL/TLS Negotiation Error"
 msgstr "Erro de negociação SSL/TLS"
 
+msgid "Second Roll (DUO/Twin Only)"
+msgstr ""
+
 msgid "See Other"
 msgstr "Veja outro"
 
@@ -6607,6 +6625,14 @@
 msgid "finishing-template.trim-after-pages"
 msgstr ""
 
+#. TRANSLATORS: Trim After Every Set
+msgid "finishing-template.trim-after-sets"
+msgstr ""
+
+#. TRANSLATORS: Trim After Every Page
+msgid "finishing-template.trim-after-sheets"
+msgstr ""
+
 #. TRANSLATORS: Finishings
 msgid "finishings"
 msgstr ""
@@ -8944,6 +8970,58 @@
 msgid "media-type.cd"
 msgstr ""
 
+#. TRANSLATORS: Photo Advanced Paper
+msgid "media-type.com.hp.advanced-photo"
+msgstr ""
+
+#. TRANSLATORS: Brochure Glossy Paper
+msgid "media-type.com.hp.brochure-glossy"
+msgstr ""
+
+#. TRANSLATORS: Brochure Matte Paper
+msgid "media-type.com.hp.brochure-matte"
+msgstr ""
+
+#. TRANSLATORS: Matte Coverstock
+msgid "media-type.com.hp.cover-matte"
+msgstr ""
+
+#. TRANSLATORS: EcoSMART Lite Paper
+msgid "media-type.com.hp.ecosmart-lite"
+msgstr ""
+
+#. TRANSLATORS: Everyday Glossy Paper
+msgid "media-type.com.hp.everyday-glossy"
+msgstr ""
+
+#. TRANSLATORS: Everyday Matte Paper
+msgid "media-type.com.hp.everyday-matte"
+msgstr ""
+
+#. TRANSLATORS: Extra Heavyweight Paper
+msgid "media-type.com.hp.extra-heavy"
+msgstr ""
+
+#. TRANSLATORS: Intermediate Paper
+msgid "media-type.com.hp.intermediate"
+msgstr ""
+
+#. TRANSLATORS: Mid-Weight Paper
+msgid "media-type.com.hp.mid-weight"
+msgstr ""
+
+#. TRANSLATORS: Inkjet Premium Paper
+msgid "media-type.com.hp.premium-inkjet"
+msgstr ""
+
+#. TRANSLATORS: Photo Premium Paper
+msgid "media-type.com.hp.premium-photo"
+msgstr ""
+
+#. TRANSLATORS: Premium Matte Presentation Paper
+msgid "media-type.com.hp.premium-presentation-matte"
+msgstr ""
+
 #. TRANSLATORS: Continuous
 msgid "media-type.continuous"
 msgstr ""
@@ -9136,6 +9214,22 @@
 msgid "media-type.imaging-cylinder"
 msgstr ""
 
+#. TRANSLATORS: Photo Paper Plus Glossy II
+msgid "media-type.jp.co.canon-photo-paper-plus-glossy-ii"
+msgstr ""
+
+#. TRANSLATORS: Photo Paper Pro Platinum
+msgid "media-type.jp.co.canon-photo-paper-pro-platinum"
+msgstr ""
+
+#. TRANSLATORS: Photo Paper Plus Glossy II
+msgid "media-type.jp.co.canon_photo-paper-plus-glossy-ii"
+msgstr ""
+
+#. TRANSLATORS: Photo Paper Pro Platinum
+msgid "media-type.jp.co.canon_photo-paper-pro-platinum"
+msgstr ""
+
 #. TRANSLATORS: Labels
 msgid "media-type.labels"
 msgstr ""
@@ -15148,6 +15242,9 @@
 #~ "Um nome de usuário do Samba é necessário para exportar drivers de "
 #~ "impressora"
 
+#~ msgid "Dymo"
+#~ msgstr "Dymo"
+
 #~ msgid "Export Printers to Samba"
 #~ msgstr "Exportar impressoras para o Samba"
 
diff --git a/locale/cups_ru.po b/locale/cups_ru.po
index dc078f6..5a0d0da 100644
--- a/locale/cups_ru.po
+++ b/locale/cups_ru.po
@@ -2,7 +2,7 @@
 msgstr ""
 "Project-Id-Version: CUPS 2.0\n"
 "Report-Msgid-Bugs-To: https://github.com/apple/cups/issues\n"
-"POT-Creation-Date: 2019-08-23 09:13-0400\n"
+"POT-Creation-Date: 2019-12-18 20:19-0500\n"
 "PO-Revision-Date: 2015-01-28 12:00-0800\n"
 "Last-Translator: Aleksandr Proklov\n"
 "Language-Team: Russian - PuppyRus Linux Team\n"
@@ -1554,6 +1554,9 @@
 msgid "--not expression        Unary NOT of expression"
 msgstr ""
 
+msgid "--pam-service service   Use the named PAM service"
+msgstr ""
+
 msgid "--path regex            Match resource path to regular expression"
 msgstr ""
 
@@ -1724,6 +1727,9 @@
 msgid "-95"
 msgstr "-95"
 
+msgid "-A                      Enable authentication"
+msgstr ""
+
 msgid "-C                      Send requests using chunking (default)"
 msgstr ""
 
@@ -1895,6 +1901,9 @@
 msgid "-d destination          Set the named destination as the server default"
 msgstr ""
 
+msgid "-d destination          Specify the destination"
+msgstr ""
+
 msgid "-d name=value           Set named variable to value"
 msgstr ""
 
@@ -2504,6 +2513,9 @@
 msgid "300dpi"
 msgstr "300dpi"
 
+msgid "30859 Paint Can Label"
+msgstr ""
+
 msgid "35"
 msgstr "35"
 
@@ -3153,6 +3165,9 @@
 msgid "Cutter"
 msgstr "Резак"
 
+msgid "DYMO"
+msgstr ""
+
 msgid "Dark"
 msgstr "Темный"
 
@@ -3236,9 +3251,6 @@
 msgid "Duplexer"
 msgstr "Дуплексер"
 
-msgid "Dymo"
-msgstr "Dymo"
-
 msgid "EPL1 Label Printer"
 msgstr "Принтер для печати этикеток EPL1"
 
@@ -3893,6 +3905,9 @@
 msgid "Looking for printer."
 msgstr "Поиск принтера."
 
+msgid "Main Roll"
+msgstr ""
+
 msgid "Manual Feed"
 msgstr "Ручная подача"
 
@@ -4430,6 +4445,9 @@
 msgid "SSL/TLS Negotiation Error"
 msgstr "SSL/TLS Negotiation Error"
 
+msgid "Second Roll (DUO/Twin Only)"
+msgstr ""
+
 msgid "See Other"
 msgstr "Посмотреть другие"
 
@@ -6556,6 +6574,14 @@
 msgid "finishing-template.trim-after-pages"
 msgstr ""
 
+#. TRANSLATORS: Trim After Every Set
+msgid "finishing-template.trim-after-sets"
+msgstr ""
+
+#. TRANSLATORS: Trim After Every Page
+msgid "finishing-template.trim-after-sheets"
+msgstr ""
+
 #. TRANSLATORS: Finishings
 msgid "finishings"
 msgstr ""
@@ -8892,6 +8918,58 @@
 msgid "media-type.cd"
 msgstr ""
 
+#. TRANSLATORS: Photo Advanced Paper
+msgid "media-type.com.hp.advanced-photo"
+msgstr ""
+
+#. TRANSLATORS: Brochure Glossy Paper
+msgid "media-type.com.hp.brochure-glossy"
+msgstr ""
+
+#. TRANSLATORS: Brochure Matte Paper
+msgid "media-type.com.hp.brochure-matte"
+msgstr ""
+
+#. TRANSLATORS: Matte Coverstock
+msgid "media-type.com.hp.cover-matte"
+msgstr ""
+
+#. TRANSLATORS: EcoSMART Lite Paper
+msgid "media-type.com.hp.ecosmart-lite"
+msgstr ""
+
+#. TRANSLATORS: Everyday Glossy Paper
+msgid "media-type.com.hp.everyday-glossy"
+msgstr ""
+
+#. TRANSLATORS: Everyday Matte Paper
+msgid "media-type.com.hp.everyday-matte"
+msgstr ""
+
+#. TRANSLATORS: Extra Heavyweight Paper
+msgid "media-type.com.hp.extra-heavy"
+msgstr ""
+
+#. TRANSLATORS: Intermediate Paper
+msgid "media-type.com.hp.intermediate"
+msgstr ""
+
+#. TRANSLATORS: Mid-Weight Paper
+msgid "media-type.com.hp.mid-weight"
+msgstr ""
+
+#. TRANSLATORS: Inkjet Premium Paper
+msgid "media-type.com.hp.premium-inkjet"
+msgstr ""
+
+#. TRANSLATORS: Photo Premium Paper
+msgid "media-type.com.hp.premium-photo"
+msgstr ""
+
+#. TRANSLATORS: Premium Matte Presentation Paper
+msgid "media-type.com.hp.premium-presentation-matte"
+msgstr ""
+
 #. TRANSLATORS: Continuous
 msgid "media-type.continuous"
 msgstr ""
@@ -9084,6 +9162,22 @@
 msgid "media-type.imaging-cylinder"
 msgstr ""
 
+#. TRANSLATORS: Photo Paper Plus Glossy II
+msgid "media-type.jp.co.canon-photo-paper-plus-glossy-ii"
+msgstr ""
+
+#. TRANSLATORS: Photo Paper Pro Platinum
+msgid "media-type.jp.co.canon-photo-paper-pro-platinum"
+msgstr ""
+
+#. TRANSLATORS: Photo Paper Plus Glossy II
+msgid "media-type.jp.co.canon_photo-paper-plus-glossy-ii"
+msgstr ""
+
+#. TRANSLATORS: Photo Paper Pro Platinum
+msgid "media-type.jp.co.canon_photo-paper-pro-platinum"
+msgstr ""
+
 #. TRANSLATORS: Labels
 msgid "media-type.labels"
 msgstr ""
@@ -15098,6 +15192,9 @@
 #~ msgid "A Samba username is required to export printer drivers"
 #~ msgstr "Для экспорта драйверов принтера требуется имя пользователя Samba"
 
+#~ msgid "Dymo"
+#~ msgstr "Dymo"
+
 #~ msgid "Export Printers to Samba"
 #~ msgstr "Экспортировать принтеры в Samba"
 
diff --git a/locale/cups_zh_CN.po b/locale/cups_zh_CN.po
index 818df30..c1dd080 100644
--- a/locale/cups_zh_CN.po
+++ b/locale/cups_zh_CN.po
@@ -12,7 +12,7 @@
 msgstr ""
 "Project-Id-Version: CUPS 2.3\n"
 "Report-Msgid-Bugs-To: https://github.com/apple/cups/issues\n"
-"POT-Creation-Date: 2019-08-23 09:13-0400\n"
+"POT-Creation-Date: 2019-12-18 20:19-0500\n"
 "PO-Revision-Date: 2018-10-09 00:21-0500\n"
 "Last-Translator: Mingcong Bai <jeffbai@aosc.io>\n"
 "Language-Team: Chinese (Simplified)\n"
@@ -1538,6 +1538,9 @@
 msgid "--not expression        Unary NOT of expression"
 msgstr ""
 
+msgid "--pam-service service   Use the named PAM service"
+msgstr ""
+
 msgid "--path regex            Match resource path to regular expression"
 msgstr ""
 
@@ -1708,6 +1711,9 @@
 msgid "-95"
 msgstr "-95"
 
+msgid "-A                      Enable authentication"
+msgstr ""
+
 msgid "-C                      Send requests using chunking (default)"
 msgstr ""
 
@@ -1879,6 +1885,9 @@
 msgid "-d destination          Set the named destination as the server default"
 msgstr ""
 
+msgid "-d destination          Specify the destination"
+msgstr ""
+
 msgid "-d name=value           Set named variable to value"
 msgstr ""
 
@@ -2488,6 +2497,9 @@
 msgid "300dpi"
 msgstr "300 dpi"
 
+msgid "30859 Paint Can Label"
+msgstr ""
+
 msgid "35"
 msgstr "35"
 
@@ -3137,6 +3149,9 @@
 msgid "Cutter"
 msgstr "车床刀具"
 
+msgid "DYMO"
+msgstr ""
+
 msgid "Dark"
 msgstr "暗色"
 
@@ -3226,9 +3241,6 @@
 msgid "Duplexer"
 msgstr "双工器"
 
-msgid "Dymo"
-msgstr "Dymo"
-
 msgid "EPL1 Label Printer"
 msgstr "EPL1 标签打印机"
 
@@ -3882,6 +3894,9 @@
 msgid "Looking for printer."
 msgstr "正在寻找打印机。"
 
+msgid "Main Roll"
+msgstr ""
+
 msgid "Manual Feed"
 msgstr "手动喂纸"
 
@@ -4420,6 +4435,9 @@
 msgid "SSL/TLS Negotiation Error"
 msgstr "SSL/TLS 协商错误"
 
+msgid "Second Roll (DUO/Twin Only)"
+msgstr ""
+
 msgid "See Other"
 msgstr "查看其他"
 
@@ -6526,6 +6544,14 @@
 msgid "finishing-template.trim-after-pages"
 msgstr ""
 
+#. TRANSLATORS: Trim After Every Set
+msgid "finishing-template.trim-after-sets"
+msgstr ""
+
+#. TRANSLATORS: Trim After Every Page
+msgid "finishing-template.trim-after-sheets"
+msgstr ""
+
 #. TRANSLATORS: Finishings
 msgid "finishings"
 msgstr ""
@@ -8860,6 +8886,58 @@
 msgid "media-type.cd"
 msgstr ""
 
+#. TRANSLATORS: Photo Advanced Paper
+msgid "media-type.com.hp.advanced-photo"
+msgstr ""
+
+#. TRANSLATORS: Brochure Glossy Paper
+msgid "media-type.com.hp.brochure-glossy"
+msgstr ""
+
+#. TRANSLATORS: Brochure Matte Paper
+msgid "media-type.com.hp.brochure-matte"
+msgstr ""
+
+#. TRANSLATORS: Matte Coverstock
+msgid "media-type.com.hp.cover-matte"
+msgstr ""
+
+#. TRANSLATORS: EcoSMART Lite Paper
+msgid "media-type.com.hp.ecosmart-lite"
+msgstr ""
+
+#. TRANSLATORS: Everyday Glossy Paper
+msgid "media-type.com.hp.everyday-glossy"
+msgstr ""
+
+#. TRANSLATORS: Everyday Matte Paper
+msgid "media-type.com.hp.everyday-matte"
+msgstr ""
+
+#. TRANSLATORS: Extra Heavyweight Paper
+msgid "media-type.com.hp.extra-heavy"
+msgstr ""
+
+#. TRANSLATORS: Intermediate Paper
+msgid "media-type.com.hp.intermediate"
+msgstr ""
+
+#. TRANSLATORS: Mid-Weight Paper
+msgid "media-type.com.hp.mid-weight"
+msgstr ""
+
+#. TRANSLATORS: Inkjet Premium Paper
+msgid "media-type.com.hp.premium-inkjet"
+msgstr ""
+
+#. TRANSLATORS: Photo Premium Paper
+msgid "media-type.com.hp.premium-photo"
+msgstr ""
+
+#. TRANSLATORS: Premium Matte Presentation Paper
+msgid "media-type.com.hp.premium-presentation-matte"
+msgstr ""
+
 #. TRANSLATORS: Continuous
 msgid "media-type.continuous"
 msgstr ""
@@ -9052,6 +9130,22 @@
 msgid "media-type.imaging-cylinder"
 msgstr ""
 
+#. TRANSLATORS: Photo Paper Plus Glossy II
+msgid "media-type.jp.co.canon-photo-paper-plus-glossy-ii"
+msgstr ""
+
+#. TRANSLATORS: Photo Paper Pro Platinum
+msgid "media-type.jp.co.canon-photo-paper-pro-platinum"
+msgstr ""
+
+#. TRANSLATORS: Photo Paper Plus Glossy II
+msgid "media-type.jp.co.canon_photo-paper-plus-glossy-ii"
+msgstr ""
+
+#. TRANSLATORS: Photo Paper Pro Platinum
+msgid "media-type.jp.co.canon_photo-paper-pro-platinum"
+msgstr ""
+
 #. TRANSLATORS: Labels
 msgid "media-type.labels"
 msgstr ""
@@ -15054,6 +15148,9 @@
 #~ msgid "A Samba username is required to export printer drivers"
 #~ msgstr "需要 Samba 用户名以导出打印机驱动"
 
+#~ msgid "Dymo"
+#~ msgstr "Dymo"
+
 #~ msgid "Export Printers to Samba"
 #~ msgstr "将打印机导出到 Samba"
 
diff --git a/locale/ipp-strings.c b/locale/ipp-strings.c
index 0e7c09c..40b246c 100644
--- a/locale/ipp-strings.c
+++ b/locale/ipp-strings.c
@@ -576,6 +576,10 @@
 _("finishing-template.trim-after-job");
 /* TRANSLATORS: Trim After Every Page */
 _("finishing-template.trim-after-pages");
+/* TRANSLATORS: Trim After Every Set */
+_("finishing-template.trim-after-sets");
+/* TRANSLATORS: Trim After Every Page */
+_("finishing-template.trim-after-sheets");
 /* TRANSLATORS: Finishings */
 _("finishings");
 /* TRANSLATORS: Finishings */
@@ -1578,6 +1582,32 @@
 _("media-type.cardstock");
 /* TRANSLATORS: CD */
 _("media-type.cd");
+/* TRANSLATORS: Photo Advanced Paper */
+_("media-type.com.hp.advanced-photo");
+/* TRANSLATORS: Brochure Glossy Paper */
+_("media-type.com.hp.brochure-glossy");
+/* TRANSLATORS: Brochure Matte Paper */
+_("media-type.com.hp.brochure-matte");
+/* TRANSLATORS: Matte Coverstock */
+_("media-type.com.hp.cover-matte");
+/* TRANSLATORS: EcoSMART Lite Paper */
+_("media-type.com.hp.ecosmart-lite");
+/* TRANSLATORS: Everyday Glossy Paper */
+_("media-type.com.hp.everyday-glossy");
+/* TRANSLATORS: Everyday Matte Paper */
+_("media-type.com.hp.everyday-matte");
+/* TRANSLATORS: Extra Heavyweight Paper */
+_("media-type.com.hp.extra-heavy");
+/* TRANSLATORS: Intermediate Paper */
+_("media-type.com.hp.intermediate");
+/* TRANSLATORS: Mid-Weight Paper */
+_("media-type.com.hp.mid-weight");
+/* TRANSLATORS: Inkjet Premium Paper */
+_("media-type.com.hp.premium-inkjet");
+/* TRANSLATORS: Photo Premium Paper */
+_("media-type.com.hp.premium-photo");
+/* TRANSLATORS: Premium Matte Presentation Paper */
+_("media-type.com.hp.premium-presentation-matte");
 /* TRANSLATORS: Continuous */
 _("media-type.continuous");
 /* TRANSLATORS: Continuous Long */
@@ -1674,6 +1704,14 @@
 _("media-type.image-setter-paper");
 /* TRANSLATORS: Imaging Cylinder */
 _("media-type.imaging-cylinder");
+/* TRANSLATORS: Photo Paper Plus Glossy II*/
+_("media-type.jp.co.canon-photo-paper-plus-glossy-ii");
+/* TRANSLATORS: Photo Paper Pro Platinum*/
+_("media-type.jp.co.canon-photo-paper-pro-platinum");
+/* TRANSLATORS: Photo Paper Plus Glossy II*/
+_("media-type.jp.co.canon_photo-paper-plus-glossy-ii");
+/* TRANSLATORS: Photo Paper Pro Platinum*/
+_("media-type.jp.co.canon_photo-paper-pro-platinum");
 /* TRANSLATORS: Labels */
 _("media-type.labels");
 /* TRANSLATORS: Colored Labels */
diff --git a/packaging/cups.spec b/packaging/cups.spec
index 90a7b62..82d803e 100644
--- a/packaging/cups.spec
+++ b/packaging/cups.spec
@@ -40,12 +40,12 @@
 
 Summary: CUPS
 Name: cups
-Version: 2.3.1
+Version: 2.3.3
 Release: 0
 Epoch: 1
 License: GPL
 Group: System Environment/Daemons
-Source: https://github.com/apple/cups/releases/download/v2.3.1/cups-2.3.1-source.tar.gz
+Source: https://github.com/apple/cups/releases/download/v2.3.3/cups-2.3.3-source.tar.gz
 Url: http://www.cups.org
 Packager: Anonymous <anonymous@example.com>
 Vendor: Example Corp
diff --git a/ppdc/ppdc-source.cxx b/ppdc/ppdc-source.cxx
index c25d496..b28c472 100644
--- a/ppdc/ppdc-source.cxx
+++ b/ppdc/ppdc-source.cxx
@@ -1743,15 +1743,17 @@
 
   switch (sscanf(name, "%dx%d", &xdpi, &ydpi))
   {
-    case 0 :
-        _cupsLangPrintf(stderr,
-	                _("ppdc: Bad resolution name \"%s\" on line %d of "
-			  "%s."), name, fp->line, fp->filename);
-        break;
     case 1 :
         ydpi = xdpi;
-	break;
-  }
+        break;
+    case 2 :
+        break;
+    default :
+        _cupsLangPrintf(stderr,
+                  _("ppdc: Bad resolution name \"%s\" on line %d of "
+        "%s."), name, fp->line, fp->filename);
+        break;
+}
 
   // Create the necessary PS commands...
   snprintf(command, sizeof(command),
diff --git a/scheduler/printers.c b/scheduler/printers.c
index 8069039..e341bdb 100644
--- a/scheduler/printers.c
+++ b/scheduler/printers.c
@@ -446,7 +446,7 @@
 
   /* cups-version */
   ippAddString(CommonData, IPP_TAG_PRINTER, IPP_TAG_TEXT | IPP_TAG_COPY,
-               "cups-version", NULL, CUPS_SVERSION + 6);
+               "cups-version", NULL, &CUPS_SVERSION[6]);
 
   /* generated-natural-language-supported (no IPP_TAG_COPY) */
   ippAddString(CommonData, IPP_TAG_PRINTER, IPP_TAG_LANGUAGE,
diff --git a/vcnet/config.h b/vcnet/config.h
index 4ad1dc8..76fc7fd 100644
--- a/vcnet/config.h
+++ b/vcnet/config.h
@@ -97,8 +97,8 @@
  * Version of software...
  */
 
-#define CUPS_SVERSION "CUPS v2.3.1"
-#define CUPS_MINIMAL "CUPS/2.3.1"
+#define CUPS_SVERSION "CUPS v2.3.3"
+#define CUPS_MINIMAL "CUPS/2.3.3"
 
 
 /*
diff --git a/xcode/config.h b/xcode/config.h
index 38998ee..5953431 100644
--- a/xcode/config.h
+++ b/xcode/config.h
@@ -18,8 +18,8 @@
  * Version of software...
  */
 
-#define CUPS_SVERSION "CUPS v2.3.1"
-#define CUPS_MINIMAL "CUPS/2.3.1"
+#define CUPS_SVERSION "CUPS v2.3.3"
+#define CUPS_MINIMAL "CUPS/2.3.3"
 
 
 /*
