SELF-CHECKOUT METHOD AND APPARATUS INCLUDING GRAPHIC INTERFACE FOR NON-BAR CODED ITEMS

Abstract: An apparatus and method for self-checkout of non-bar coded items is provided. The apparatus includes a PLU entry device, a PLU database and a processing unit. The PLU entry device includes a display and a GUI. The GUI provides on the display a predetermined image corresponding to a non-bar coded item, and means for the user to select the predetermined image of the non-bar coded item. The PLU entry device supplies a PLU corresponding to the non-bar coded item selected by the user. The processing unit uses the PLU supplied by the PLU entry device to retrieve a price of the selected non-bar coded items. The processing unit may maintain for each item a count of the number of units of the item sold within a predetermined period of time. The processing unit also may maintain a list of most frequently sold items. The image of at least one item on the list is provided on a selected display screen. The processing unit may update the display screen when the list of most frequently sold items changes. An image of a generic category of items may be provided on the display. The displayed image of the generic category is selected by the user to view images of respective items in the generic category.

Description: SELF-CHECKOUT METHOD AND APPARATUS INCLUDING GRAPHIC INTERFACE FOR NON-BAR CODED ITEMS FIELD OF THE INVENTION The present invention relates to a method and apparatus for self-checkout. In particular, the invention relates to a method of and apparatus for self-checkout of non-bar coded items which includes using a graphic user interface (GUI) on a touch screen display. BACKGROUND OF THE INVENTION In a traditional retail environment, a customer selects various items for purchase and brings these items to a store clerk for checkout. Over the past few decades, retail point of sale systems have been greatly automated to expedite the checkout process. Computer-based point-of- sale systems are now the norm in the retail environment. Such point-of-sale systems include one or more terminals, and a database of prices, inventory and other information related to the items for purchase. Each terminal typically has an optical scanner which scans the items to be purchased for a machine readable bar code that identifies the item on its packaging. When an item is scanned, the optical scanner sends a signal corresponding to the product number of the item to a data processing component of the point-of-sale system, which then obtains from the database the price and the description of the scanned item. More recently, self-checkout point-of-sale systems have been popularized. These systems typically comprise self-checkout terminals each of which typically is provided with a bar code scanner with an integrated scale that allows the customer to scan the bar codes on the items to be purchased. The terminal typically also has other input and output devices such as a printer, electronic fund transfer terminal (EFT) , a video camera unit and a display. Automated self-checkout systems, such as the ϋ-Scan Express® available from Optimal Robotics Corp., have become popular among retailers throughout North America. Some self-checkout systems are described in United States Patent Nos. 5,083,638, 5,115,888, 5,123,494, 5,125,465 and 5,168,961, which are incorporated herein by reference. In the typical retail market, most produce items, as well as other items such as items priced according to weight but usually not having a standardized weight, do not have a Universal Product Code (UPC) , in the form of a bar code, associated with them. A Product Look Up (PLU) code is assigned instead to such items. The PLU code corresponds to a numeric identification of the item and, in most cases, is attached to the item with a sticker. The non-bar coded item typically is checked out by the item being placed on the scale at the checkout station, if the item is priced according to weight, and then the PLU code of the item being entered by the customer at the self- checkout station, or by the cashier at a manned checkout station, using the numeric keypad. The processing unit then assigns a price to the item based on the PLU code and, if applicable, the weight of the item detected by the scale. Many customers at such self-checkout stations do not know, however, that they need to enter manually the PLU code for such items, and therefore such customers experience delay in the checkout process. At a self-checkout terminal, the customer is provided means to call for assistance from a supervisory employee when a non-bar coded item is to be processed. The video camera unit at the self-checkout terminal captures a video image of the uncoded item placed on the terminal's scale by the customer. The video image of the uncoded item is displayed at a supervisor station display which allows the supervisory employee to view the non-bar coded item and thereafter enter the appropriate PLU code for the item. This employee typically supervises, however, several self- checkout terminals, and therefore the customer might encounter delay waiting for a non-bar coded item to be processed. SUMMARY OF THE INVENTION The present invention provides an apparatus and method for self-checkout of non-bar coded items. The apparatus includes a PLU entry device, a PLU database and a processing unit. The PLU entry device includes a display and a GUI. The GUI provides on the display a predetermined image corresponding to a non-bar coded item, and means for the user to select the predetermined image of the non-bar coded item. The PLU entry device supplies a PLU corresponding to the non-bar coded item selected by the user. The processing unit uses the PLU supplied by the PLU entry device to retrieve the price of the selected non-bar coded item from the PLU database. The apparatus may include a GUI editor. The GUI editor may be used to configure the GUI for non-bar coded items . The processing unit may maintain for each item a count of the number of units of the item sold within a predetermined period of time. The processing unit also may maintain a list of most frequently sold items, and the image of at least one item on the list may be provided on a selected display screen. The processing unit may update the display screen when the list of most frequently sold items changes. An image of a generic category of items may be provided on the display. The displayed image of the generic category may be selected by the user to view images of respective items in the generic category. BRIEF DESCRIPTION OF THE DRAWINGS The present invention can be more readily understood from the following detailed description by referring to the accompanying drawings wherein: FIG. 1 shows an exemplary image in a GUI for non-bar coded items, in accordance with one embodiment of the present invention, that might appear on a touch screen monitor for selecting a generic category of items; FIG. 2 shows an exemplary GUI screen for selecting one of specific types of apples; FIG. 3 shows an exemplary GUI screen presenting maintenance mode options; FIG. 4 shows an exemplary GUI screen for entering a password; FIG. 5 shows an exemplary GUI screen for entering an alternate password; FIG. 6 shows an exemplary GUI screen presenting custom setup options; FIG. 7 shows an exemplary GUI editor screen presenting edit options; FIG. 8 shows an exemplary GUI editor screen for selecting a reset frequency for the database of most frequently sold items; FIG. 9 shows an exemplary GUI editor screen for selecting a day of the week upon which the database is to be reset; FIG. 10 shows an exemplary GUI editor screen for selecting visual layout of the GUI for non-bar coded items; FIG. 11 shows an exemplary GUI editor screen for selecting a button to which an item or generic category may be assigned; FIG. 12 shows an exemplary GUI editor screen for selecting a type of an item to be assigned to the selected button; FIG. 13 shows an exemplary GUI editor screen for selecting a third button to be defined; FIG. 14 shows an exemplary GUI editor screen for selecting a specific item to assign to a button; FIG. 15 shows an exemplary GUI editor screen indicating selection of an organic fruit/vegetable; FIG. 16 shows an exemplary GUI editor screen informing that an incorrect PLU code was entered; FIG. 17 shows an exemplary GUI editor screen for selecting a fourth button to be defined; FIG. 18 shows an exemplary GUI editor screen for selecting a generic category to be assigned to a selected button; FIG. 19 shows an exemplary GUI editor screen for selecting a generic category; FIG. 20 shows an exemplary GUI editor screen for selecting a fifth button to be defined; FIG. 21 shows an exemplary GUI editor screen for selecting a button to be assigned in the submenu; FIG. 22 shows an exemplary GUI editor screen for selecting an item to assign to the selected button in the submenu; FIG. 23 shows an exemplary GUI editor screen for selecting an item to assign to a second button in the submenu; FIG. 24 shows an exemplary GUI editor screen for selecting a third button to be assigned in the submenu; FIG. 25 shows an exemplary GUI editor screen for presenting a warning if a selected button has been assigned to a generic category with a pre-defined submenu; FIG. 26 shows an exemplary GUI editor screen for confirming removal of a selected button; FIG. 27 shows an exemplary screen in the GUI for non- bar coded items; FIG. 28 shows an exemplary screen in the GUI for non- bar coded items when a generic category button is selected; FIG. 29 shows a flow chart for a process, in accordance with an embodiment of the present invention, of setting up a non-bar coded items GUI . DETAILED DESCRIPTION OF THE INVENTION A GUI for processing the purchase of non-bar coded (primarily produce) items at a self-checkout terminal is provided in accordance with one embodiment of the present invention. A GUI editor for setting up the GUI for non-bar coded items also may be provided. Hereinafter, reference will be made to the processing of produce items for illustration purposes. However, as it will be apparent to one skilled in the art * , the GUI also may be provided for the processing of other non-bar coded items. Images and PLU codes for other non-bar coded items, such as bakery and bulk items, can also be stored in a database of the processing unit. FIG. 30 shows a block diagram of an apparatus for self-checkout of non-bar coded items, in accordance with an embodiment of the present invention. Self-checkout apparatus 300 includes a processing unit 301 which may be configured similar to known microprocessor-based computers and has a central processing unit (CPU) , a plurality of storage devices, an input/output (I/O) interface and a network interface. The storage devices may include program memory, random access memory (RAM) , non-volatile memory [such as read-only memory (ROM), electrically erasable programmable ROM (EEPROM) , etc.], and any or a combination of the mass storage devices known conventionally in the art, such as floppy disk, optical disk, hard disk and/or tape cartridge drives, plus appropriate device drivers. The CPU communicates via the I/O interface with a PLU database 303, one or more scales 304, PLU entry device 302, and a bar code scanner, as well as with other input devices and output devices. Processing unit 301 communicates via the network interface with devices, such as a host station, on a network which may be any one or a combination of local area network (LAN) , wide area network (WAN) , wireless and other networks. The network interface includes the appropriate units for interfacing with the network, including, for example, Ethernet card, modem, radio frequency (RF) transceiver, etc. For example, processing unit 301 may download product and other information from a central point-of-sale database on the network, on power-up as well as periodically during operation, via the network interface. Thus, the PLU database stored in the storage devices may be updated. PLU entry device 302 includes display 302a and GUI 302b, and may be used by the customer to enter the PLU of an item that does not have a bar code. For example, when a shopper at the self-checkout terminal places an item on scale 304, a GUI screen shown in for example FIG. 1 by default is displayed on the display. The GUI provides the customer with directions to guide him/her along to specify the item that is on the scale. The images of a number of pre-selected non-bar coded items and/or generic categories are displayed. Since verbal instructions as well as graphic content are provided, the customer is easily able to identify the product that is on the scale. Display 302a preferably is a touch screen display. Other displays coupled with a pointer device may also be used. After the customer has specified, using the GUI, the item that is on the scale, the processing unit 301 uses a PLU associated with the specified item to retrieve a price of the item from the PLU database. In accordance with one embodiment of the present invention, the GUI for processing of non-bar coded (as well as other) items is provided on a touch screen display of a self-checkout terminal. The GUI for the processing of non- bar coded items, such as produce items, may display photo quality images of the non-bar coded items on the touch screen monitor. The customer typically places the non-bar coded item on a scale at the terminal and then selects the image of the non-bar coded item displayed by the GUI on the touch screen monitor. The scale may be integrated with a bar code scanner such that the integrated device provides the functions of a scanner as well as a scale. A processing unit of the self-checkout terminal automatically assigns a price to the item based on the PLU code of the item and its detected weight. A graphic numeric "keypad" also may be provided (as a touch screen zone) on the touch screen monitor. The numeric keypad on the touch screen monitor allows the customer to enter the PLU code once the non-bar coded item has been placed on the scale. The processing unit assigns a price to the item according to the PLU code entered and the weight of the item detected by the scale. A number of categories of images may be displayed on the screen. One category which may be generated by the processing unit corresponds to a list of produce items sold most frequently at the self-checkout terminals. Another category of images corresponds to specific produce items, such as a specific fruit or vegetable (e.g., kiwi, red pepper) . Yet another group of images may correspond to generic produce categories, such as a family of fruits or vegetables (e.g., citrus, pears, stone fruit or beans). Lemons and limes, for example, may be represented by the generic citrus category. The image shown in FIG. 1 illustrates an example of a screen that might appear on the touch screen monitor in a GUI for non-bar coded items. After the user selects a button corresponding to the generic apples category from a GUI screen, shown for example in FIG. 1, the GUI then may provide a second screen which includes buttons corresponding to specific types of apples, such as illustrated in FIG. 2. In addition, a button (e.g., identified in FIG. 1 as "No Label") may be provided on the display for selection by the customer when no PLU code sticker is present on the produce item, or when no image of the produce item is displayed on the touch screen monitor. A database of specific produce (or non-bar coded) item images and their associated PLU codes may be stored on the hard disk of the processing unit. A database of generic produce (or non-bar coded) category image ' s also may be stored on the hard disk of the processing unit. A database system may be in place in the processing unit to dynamically maintain a list of the most frequently sold items at each self-checkout terminal in the store. The images of the most frequently sold items, corresponding to information stored in the most frequently sold items database, are displayed on the touch screen monitor. The list of the most frequently sold items may change continuously as a result of ongoing sales at the self-checkout terminals. The system automatically updates the images on the touch screen monitor for those buttons pre-defined as buttons for most frequently sold items. The updating of the buttons may be dynamic and occur in between the processing of two orders at the self-checkout terminal. The processing unit of each self-checkout terminal may maintain an item count of every produce (or non-bar coded item) sold. Checkout terminals may communicate to find the highest count of produce (or non-bar coded) items in their database. The produce (or non-bar coded) items with the highest count overall may be displayed on the touch screens of the self-checkout terminals. As an example, the following may be a snapshot (in time) of information stored in the databases corresponding to counts of produce (or non-bar coded) items sold at four respective self-checkout terminals in a grocery store: Terminal 1 Terminal 2 Terminal 3 Terminal 4 Database Database Database Database carrots = 156 lemons = 200 bananas = 750 cucumbers = 6 peaches = 48 tomatoes = 156 carrots = 155 bananas = 46 After the terminals have communicated amongst themselves, the following results may be displayed on the touch screen monitor of each of the self-checkout terminals : Top 1 = bananas Top 4 = tomatoes Top 2 = carrots Top 5 = peaches Top 3 = lemons Top 6 = cucumbers An editor for setting up the non-bar coded items GUI, in accordance with one embodiment of the present invention, will be described below in connection with FIGS. 3-26 and 29. A GUI editor may be provided as a tool for an administrator of the self-checkout system to set up the GUI for non-bar coded items. The term "administrator" is used herein to mean a person who has access privileges for configuring the GUI for non-bar coded items. Such person need not be a computer specialist or expert, particularly when the person has the benefit of a GUI editor such as the one described below. Using the GUI editor, the administrator may select, and configure the terminals to show, the appropriate GUI screens, such as those illustrated in FIGS. 1 and 2, for non-bar coded items. Configuration of the GUI for non-bar coded items may be performed at, for example, one of the self-checkout terminals in a maintenance mode. The maintenance mode screens at the self-checkout terminal allow the administrator to use a GUI editor for setting up the screens for processing non-bar coded items. After configuration of the GUI for non-bar coded items has been completed at the selected terminal, the GUI data may be broadcast to the remaining self-checkout terminals in the store on a LAN or wireless network, in order for the GUI for non-bar coded items to be installed on those terminals. The selected checkout terminal on which the GUI for non-bar coded items will be configured enters a maintenance mode from one of a number of possible paths. For example, the terminal may enter the maintenance mode by default upon boot-up or by command from a shell or user interface . An example of a GUI screen which may be displayed when the terminal enters the maintenance mode is illustrated in FIG. 3. The maintenance mode screen provides assorted user interface features for performing maintenance at the terminal, including testing the various components of the terminal, such as the bill dispenser and the speaker. Moreover, the administrator is provided with means, e.g., a graphic button/key, to enter custom setup of the terminal (step 102 shown in FIG. 29) . Custom setup is password protected, i.e., the user is required to enter a password to enter custom setup. An example of a GUI screen for entering custom setup is illustrated in FIG. 4. The user may enter the password and select a "DONE" button on the touch screen monitor (step 104). If the password is incorrect (step 106), a message asking the user to try again may appear on the screen, as shown for example in FIG. 5. When the password is correct, the administrator is provided with a number of custom setup functions by the GUI. The user interface provides means on the touch screen monitor, e.g., button identified as "Produce Editor" in FIG. 6, for the user to select access to the GUI editor for non-bar coded items (step 108).- An additional password also may be required for access to the GUI editor. The GUI again may prompt the user for a password as shown for example in FIG. 4 (step 110) . After a correct password is supplied (step 112), the GUI editor provides the administrator with two edit options (step 114), as shown for example in FIG. 7. The administrator may select the first option (shown in FIG. 7 as "Best-Seller Database Management") to configure a database of specific features, such as the best seller items, described further below. The administrator may select the second option (shown in FIG. 7 as "Layout Modification" ) to configure a layout of the GUI for non-bar coded items. When the administrator selects the first option, the GUI editor prompts the administrator to select a frequency for resetting the database of the most frequently sold items (step 116), as shown for example in FIG. 8. The frequencies that may be selected include, for example, daily, weekly, bi-weekly, monthly, etc. After the administrator selects the update frequency, the GUI editor prompts the administrator to select a day of the week on which the database is to be reset (step 118), as shown for example in FIG. 9. After the administrator completes configuration of the best-seller database, the GUI editor provides the administrator with the edit options again (FIG. 7). The administrator then may select the "Layout Modification" option. A number of possible visual layouts of the GUI for non-bar coded items are displayed by the GUI editor for selection (step 120), as shown for example in FIG. 10. After one of the layouts is selected, the GUI editor prompts the administrator to select one of the buttons to be defined in the GUI for non-bar coded items (step 122) , as shown for example in FIG. 11. Next, the GUI editor prompts the administrator to assign the selected button to an item or generic category (step 124) . As shown for example in FIG. 12, the button may be assigned to one of the following item/category types: (i) a best seller; (ii) a specific produce item, e.g. kiwi; or (iii) a generic produce category, e.g., a family of fruits or vegetables. For example, if "A Top 12 Best-seller Item" is selected (step 126) , the selected button is assigned dynamically to the item that is currently highest in the list of most frequently sold produce items at the self- checkout terminals (step 128). After the button is assigned to the best seller item, the GUI editor prompts the administrator to select one of the remaining buttons, and the process is repeated for that second selected button. FIG. 13 shows a GUI editor screen prompting the administrator to select another one of the buttons after the second button is assigned to, for example, the next best seller. After the third button is selected, the GUI editor prompts the administrator to assign the selected button to a produce item or generic category, as shown for example in FIG. 12. For example, . if "A Specific Produce Item" is selected (step 130) , the administrator is prompted to enter a PLU code of the item to be assigned to the selected button (step 132) . The image corresponding to the entered PLU code appears in a portion of the GUI editor screen, as shown for example by the image of the banana in FIG. 14. As shown for example in FIG. 15, an organic fruit or vegetables can be selected by specifying its corresponding PLU code. The administrator may confirm that the image that appears in the GUI editor screen should be assigned to the button by pressing the displayed image (steps 134, 136 and 137). On the other hand, if the wrong code was entered (step 134), the administrator may select "CLEAR" to enter the PLU code again (step 138). If the PLU code entered by the administrator is not valid (step 135) , the GUI editor displays a message that the image is not on file, as shown for example in FIG. 16, and disables the "OK" button. Under this circumstance, the GUI editor waits for the "CLEAR" key to be selected and a valid PLU code to be entered. Next, a fourth button to be defined may be selected from the main screen, as shown for example in FIG. 17. After a fourth button is selected, the screen for selecting an item or generic category, as shown for example in FIG. 12, again is presented by the GUI editor. For example, "A Generic Produce Category" button may be selected (step 140) . The generic category options include, as shown for example in FIG. 18, assigning a generic category to the selected button, or creating a submenu of other buttons to be linked to the category button. If the administrator chooses to assign the button to a generic category (step 141), the GUI editor prompts the administrator to select one of a number of generic categories (e.g., Apples) displayed on the screen (step 142), as shown for example in FIG. 19. When the administrator selects one of the generic categories, the selected button is set to the selected category (step 144) . Next, the GUI editor prompts the administrator to select a fifth button to be defined, as shown for example in FIG. 20. After a fifth button is selected, the GUI editor prompts the administrator to select an item or generic category to the selected button, as shown for example in FIG. 12. For example, this button, like the previous, may be assigned to a generic category. Then, the GUI editor prompts the administrator to either (i) assign a generic category to the button or (ii) create a submenu of other buttons to be linked to the button-, as shown for example in FIG. 18. The option to create a submenu for this button may be selected, and then specific items may be assigned to buttons in the submenu. If the option to create a submenu is selected (step 141) , the GUI editor prompts the administrator to select a button in the submenu (step 146), as shown for example in FIG. 21. Next, the GUI editor prompts the administrator to enter a PLU code of the item to be assigned to the selected button (step 148) . When the PLU code is entered, the image corresponding to the entered PLU code appears in a portion of the GUI editor screen, as shown for example in FIG. 22. The administrator may confirm that the image that appears in the GUI editor screen should be assigned to the button in the submenu, by pressing the displayed image (step 150) . The selected button in the submenu then is set to the selected item corresponding to the entered PLU code (step 151) . If a mistake is made (step 149), the "CLEAR" button may be selected (step 152) and a correct PLU code entered (step 148) . This process may be repeated, as shown for example in FIGS. 23 and 24, until all buttons in the submenu have been assigned to items. The "EXIT" button may be selected when the process is complete. Let's now return to the GUI editor screen shown in FIG. 20. One of the already assigned buttons may be selected. After one of the assigned buttons (e.g., button assigned to the "Apples" category) is selected, the GUI editor screen shown in FIG. 12 is presented. If the administrator attempts to assign the button to another item or category, a warning screen, as shown for example in FIG. 25, appears. If the already assigned button corresponds to a generic category with a pre-defined submenu, all the information stored concerning the submenu could be lost if the "YES" button is selected. Let's return again to the GUI editor screen shown in FIG. 20. After one of the assigned buttons is selected, the GUI editor screen shown in FIG. 12 again is presented. The administrator may choose to "Remove this Button" to delete the selected button. If the administrator chooses to "Remove this Button" a confirmation screen appears, as shown for example in FIG. 26. The "YES" button may be selected to confirm the deletion. The "Go Back" button may be selected to return to the edit options screen (i.e., FIG. 7), and then the "Go Back" button may be selected again to exit the GUI editor and return to the custom setup screen (i.e., FIG. 6), and a third time to return to the maintenance mode screen (i.e., FIG. 3). FIG. 27 illustrates how the GUI for non-bar coded items created by the editor process described above might look on the touch screen of a self-checkout terminal. After a customer selects the apples generic category button, the GUI screen shown in FIG. 28 is displayed. Various changes and modifications of the described embodiments could be effected by one skilled in the art without departing from the spirit or scope of the invention recited in the appended claims. Improvements and modifications which become apparent to persons of ordinary skill in the art after reading this disclosure, the drawings and the appended claims are deemed within the spirit and scope of the present invention. It is therefore contemplated that the appended claims would cover any such modifications or improvements.

Claims: What, is claimed is: 1. An apparatus for self-checkout of non-bar coded items, comprising: a PLU database; a PLU entry device having a display and a GUI, wherein the GUI provides on the display a predetermined image corresponding to a non-bar coded item, and provides a user with means for selecting the predetermined image of the non-bar coded item, and the PLU entry device supplies a PLU corresponding to the non-bar coded item selected by the user; and a processing unit, wherein the processing unit receives and uses the PLU supplied by the PLU entry device to retrieve a price of the selected non-bar coded item from the PLU database. 2. The apparatus of claim 1 further comprising a GUI editor, wherein the GUI editor is used to configure the GUI for non-bar coded items . 3. The apparatus of claim 1, wherein the processing unit also maintains a list of most frequently sold items, and the image of at least one item on the list is provided on a selected display screen. 4. The apparatus of claim 3, wherein -the processing unit updates the display screen when the list of most frequently sold items changes. 5. The apparatus of claim 1, wherein an image of a generic category of items is provided on the display, and the displayed image of the generic category is selected by the user to view images of respective items in the generic category. 6. The apparatus of claim 1, wherein the processing unit maintains for each item a count of a number of units of the item sold within a predetermined period of time. 7. The apparatus of claim 1 further comprising a scale, wherein the scale generates a weight signal representative of a weight of the non-bar coded item when the non-bar coded item is placed on the scale, and the processing unit retrieves a unit weight price of the non- bar coded item from the PLU database when the user selects the non-bar coded item and multiplies the unit weight price by the weight of the non-bar coded item to determine the total price of the item. 8. The apparatus of claim 1, wherein the display is a touch screen. 9. The apparatus of claim 8, wherein a graphic keypad also is provided on the display by the GUI. 10. The apparatus of claim 1, wherein the PLU database also stores images of the plurality of items. 11. A method for self-checkout of non-bar coded items, comprising the steps of: displaying on a monitor screen predetermined images corresponding to selected non-bar coded items; providing a GUI for the self-checkout of non-bar coded items, including means for the user to select an item corresponding to one of the displayed images; and retrieving a price of the selected item from a PLU database.

Inventors: JACOBS ERIC L L, JACOBS, ERIC, L., L.
Applicants: OPTIMAL ROBOTICS CORP, OPTIMAL ROBOTICS, CORP.
Application year: 2001
Main classification: G07F
IPC codes: G07G1