L'approche qualité avec OCaml

Image non disponible


précédentsommairesuivant

IV. Partie III

  1. Domaine des inventaires
  2. Opérations élémentaires sur les inventaires
  3. Opérations avancées sur les inventaires
  4. Cas d'usage du module Inventory

IV-A. Application à la gestion d'inventaires

Pour conclure ce tour d'horizon des techniques de programmation élémentaires, des listes polymorphes, de la modularité et du traitement des erreurs, nous allons étudier un projet complet et réaliste qui fait usage de toutes ces connaissances.

IV-A-1. 25. Domaine des inventaires

Notre projet a pour but de fournir des primitives sophistiquées pour l'écriture de programmes de gestion automatique des inventaires de pièces détachées. Toutes ces facilités seront disponibles dans le module Inventory :

 
Sélectionnez
module Inventory = struct
  ...
end;;

Un inventaire est une liste d'associations qui à chaque clé 'a associe un entier, ce que nous formalisons ainsi :

 
Sélectionnez
type 'a inventory = ('a * int) list;;

Pour la commodité des utilisateurs du module nous définissons également l'alias suivant de sorte que le type inventaire soit disponible sous le nom Inventory.t :

 
Sélectionnez
type 'a t = 'a inventory;;

Et pour donner une idée intuitive de ce qu'est un inventaire rien de tel qu'un exemple :

 
Sélectionnez
# (["bottle",1;"glass",2] : string inventory);;
- : string inventory = [("bottle", 1); ("glass", 2)]

Cette expression signifie simplement "1 bouteille et 2 verres", l'interpréteur confirme qu'il a bien inféré un inventaire comme il lui a été demandé par l'annotation de type.

Nous venons de définir le type d'un inventaire, il nous faut maintenant définir son domaine.
Par exemple il est évident que la quantité d'un article dans un inventaire ne saurait être négative. Nous choisissons également d'imposer une représentation unique pour chaque inventaire possible, pour cela nous ajoutons les deux contraintes suivantes :

  • la quantité d'un article dans un inventaire ne peut pas être nulle (elle doit être strictement positive) ;
  • un même article ne peut pas avoir deux quantités dans le même inventaire.

Afin de garantir cette deuxième et dernière contrainte, le plus simple est de trier les articles selon leur clé.
Le prédicat valid nous assurera qu'un inventaire est bien dans le domaine de définition :

 
Sélectionnez
let valid (a: 'a inventory) =
  let rec loop prev l =
    match l with
    | [] -> true
    | (p,n)::t -> (p > prev) && (n > 0) && (loop p t)
  in match a with
  | [] -> true
  | (p,n)::t -> (n > 0) && (loop p t);;

Et le constructeur make nous construira un inventaire valide à partir d'une liste quand cela est possible :

 
Sélectionnez
let make l =
  let sorted = List.sort (fun (p1,_) (p2,_) -> compare p1 p2) l in
  assert(valid sorted);
  (sorted : 'a inventory);;

Nous pouvons maintenant aborder sereinement les opérations élémentaires sur les inventaires.

IV-A-2. 26. Opérations élémentaires sur les inventaires

L'union de deux inventaires qui renvoie a + b, et l'intersection de deux inventaires qui renvoie a && b :

 
Sélectionnez
(* a + b *)
let union (a: 'a inventory) (b: 'a inventory) =
  assert(valid a); assert(valid b);
  let rec loop a b u =
    match a,b with
    | [],_ -> List.rev_append u b
    | _,[] -> List.rev_append u a
    | (pa,qa as ha)::ta,(pb,qb as hb)::tb ->
        if pa < pb then loop ta b (ha::u)
        else if pa > pb then loop a tb (hb::u)
        else loop ta tb ((pa,qa+qb)::u)
  in (loop a b []: 'a inventory);;

(* a && b *)
let intersection (a: 'a inventory) (b: 'a inventory) =
  assert(valid a); assert(valid b);
  let rec loop a b c =
    match a,b with
    | [],_ -> List.rev c
    | _,[] -> List.rev c
    | (pa,qa)::ta,(pb,qb)::tb ->
        if pa < pb then loop ta b c
        else if pa > pb then loop a tb c
        else loop ta tb ((pa,min qa qb)::c)
  in (loop a b []: 'a inventory);;

La différence de deux inventaires, qui renvoie à la fois a-b et b-a, et la soustraction qui elle renvoie seulement a-b :

 
Sélectionnez
(* a-b, b-a *)
let difference (a: 'a inventory) (b: 'a inventory) =
  assert(valid a); assert(valid b);
  let rec loop a b r x =
    match a,b with
    | [],_ -> List.rev r,List.rev_append x b
    | _,[] -> List.rev_append r a,List.rev x
    | (pa,qa as ha)::ta,(pb,qb as hb)::tb ->
        if pa < pb then
          loop ta b (ha::r) x
        else if pa > pb then
          loop a tb r (hb::x)
        else if qa < qb then
          loop ta tb r ((pa,qb-qa)::x)
        else if qa > qb then
          loop ta tb ((pa,qa-qb)::r) x
        else
          loop ta tb r x
  in (loop a b [] []: 'a inventory * 'a inventory);;

(* a-b *)
let minus (a: 'a inventory) (b: 'a inventory) =
  assert(valid a); assert(valid b);
  let rec loop a b r =
    match a,b with
    | [],_ -> List.rev r
    | _,[] -> List.rev_append r a
    | (pa,qa as ha)::ta,(pb,qb)::tb ->
        if pa < pb then
          loop ta b (ha::r)
        else if pa > pb then
          loop a tb r
        else if qa < qb then
          loop ta tb r
        else if qa > qb then
          loop ta tb ((pa,qa-qb)::r)
        else
          loop ta tb r
  in (loop a b []: 'a inventory);;

Le test d'inclusion et le test d'intersection pour deux inventaires a et b :

 
Sélectionnez
let rec includes (a: 'a inventory) (b: 'a inventory) =
  assert(valid a); assert(valid b);
  match a,b with
  | [],_ -> b=[]
  | _,[] -> true
  | (pa,qa)::ta,(pb,qb)::tb ->
      if pa < pb then
        includes ta b
      else if pa > pb then
        false
      else if qa >= qb then
        includes ta tb
      else
        false;;

let rec intersects (a: 'a inventory) (b: 'a inventory) =
  assert(valid a); assert(valid b);
  match a,b with
  | [],_ -> false
  | _,[] -> false
  | (pa,qa)::ta,(pb,qb)::tb ->
      if pa < pb then
        intersects ta b
      else if pa > pb then
        intersects a tb
      else
        true;;

La multiplication d'un inventaire a par un entier n :

 
Sélectionnez
let scale n (a: 'a inventory) =
  assert(valid a);
  assert(n > 0);
  (List.map (fun (p,q) -> (p,n*q)) a&#160;: 'a inventory);;

La division d'un inventaire a par un inventaire b, renvoie le nombre n de fois que a inclut b ainsi que l'inventaire restant après avoir retranché n × b :

 
Sélectionnez
let reduce (a: 'a inventory) (b: 'a inventory) =
  assert(valid a); assert(valid b);
  let rec loop n a =
    if includes a b then
      loop (n+1) (minus a b)
    else
      n,a
  in loop 0 a;;

Le nombre total d'articles dans un inventaire a :

 
Sélectionnez
let size (a: 'a inventory) =
  assert(valid a);
  let rec loop a n =
    match a with
    | [] -> n
    | (_,q)::t -> loop t (n+q)
  in loop a 0;;

IV-A-3. 27. Opérations avancées sur les inventaires

La fonction gap calcule l'écart d'un inventaire b par rapport à un inventaire a, cet écart est le couple formé par la taille (size) de a && b et la taille de b - a :

 
Sélectionnez
let gap (a: 'a inventory) (b: 'a inventory) =
  assert(valid a); assert(valid b);
  let rec loop a b c x =
    match a,b with
    | _,[] -> c,x
    | [],_ -> c,x + size b
    | (pa,qa)::ta,(pb,qb)::tb ->
        if pa < pb then
          loop ta b c x
        else if pa > pb then
          loop a tb c (x+qb)
        else if qa <= qb then
          loop ta tb (c+qa) (x+qb-qa)
        else
          loop ta tb (c+qb) (x+qa-qb)
    in loop a b 0 0;;

Supposons que l'on cherche à obtenir l'inventaire a, soit let c,x = gap a b alors on peut estimer que le rapport c / x est une bonne approximation de la désirabilité de l'inventaire b. C'est ce rapport que nous allons utiliser pour comparer deux inventaires a et b par rapport à wanted qui désignera l'inventaire recherché.

 
Sélectionnez
let compare (wanted: 'a inventory) a b =
  assert(valid a); assert(valid b); assert(valid wanted);
  let ca,xa = gap wanted a in
  let cb,xb = gap wanted b in
  let cb_xa = cb * xa in
  let ca_xb = ca * xb in
  if cb_xa < ca_xb then 1
  else if cb_xa > ca_xb then -1
  else 0;;

L'application partielle (compare wanted) nous donne le type suivant :

 
Sélectionnez
'a inventory -> 'a inventory -> int

Comme attendu, ce type est un sous-type de la fonction Pervasives.compare, notre fonction compare correspond bien à notre intuition, en particulier elle nous permet d'écrire une fonction fold_max qui renvoie le meilleur inventaire parmi une liste d'inventaires candidats (un catalog).

Un catalog est une liste d'associations qui à chaque clé 'a, associe un 'b inventory, un catalog est valide si tous ses 'b inventory sont valides :

 
Sélectionnez
type ('a,'b) catalog = ('a * 'b inventory) list;;

let valid_catalog (cat: ('a,'b) catalog) =
  List.for_all (fun (_,inv) -> valid inv) cat;;

Comme il a été dit, la fonction fold_max trouve, dans un catalog, le couple (clé, inventaire) qui se rapproche le mieux de l'inventaire wanted recherché :

 
Sélectionnez
let rec fold_max key_init inv_init (wanted: 'b inventory) (cat: ('a,'b) catalog) =
  match cat with
  | [] -> key_init,inv_init
  | (key,inv)::l ->
    if compare wanted inv inv_init > 0 then
      fold_max key inv wanted l
    else
      fold_max key_init inv_init wanted l;;

Cette fonction à l'apparence assez obscure n'est en réalité pas bien différente d'une fonction list_max qui renverrait le plus grand élément d'une liste l qui soit supérieur à init :

 
Sélectionnez
# let rec list_max init l =
  match l with
  | [] -> init
  | a::l ->
    if a > init then
      list_max a l
    else
      list_max init l;;
val list_max&#160;: 'a -> 'a list -> 'a = <fun>

C'est un des avantages de la programmation fonctionnelle que, lorsque l'on sait programmer une fonction sur un type élémentaire, alors on a peu d'efforts à fournir pour adapter sa sémantique à un type de données beaucoup plus structuré.

Maintenant que nous connaissons les inventaires et les catalogues, nous en arrivons au problème crucial qui justifie tous ces développements : soit wanted un inventaire recherché, quelle liste d'inventaires faut-il commander (order) dans un catalog pour s'approcher autant que possible de l'inventaire voulu ?

Bien sûr pour répondre à cette question il faut d'abord définir précisément la notion de commande, une commande (order) contient :

  • un inventaire des articles (items) commandés dans un catalogue ;
  • un inventaire des pièces encore manquantes (missing) après cette commande ;
  • un inventaire des pièces en trop (extras) après cette commande.
 
Sélectionnez
type ('a,'b) order = {items: 'a inventory; missing: 'b inventory; extras: 'b inventory};;

Ces deux dernières informations tiennent au fait que l'on autorise une marge d'erreur (margin), c'est-à-dire un nombre de pièces indisponibles tel que size missing <= margin.

La fonction collect ci-dessous fournit la fonctionnalité voulue, à partir d'un inventaire et d'un catalogue elle génère une commande (order) qui fournira un inventaire dont le nombre de pièces manquantes sera inférieur à margin :

 
Sélectionnez
# let collect (wanted: 'b inventory) (cat: ('a,'b) catalog) margin =
  assert(valid_catalog cat);
  assert(valid wanted);
  assert(0 <= margin && margin < size wanted);
  let rec loop wanted cat keys extras =
    if size wanted <= margin then
      {items=keys;missing=wanted;extras=extras}
    else
    let passed =
      List.filter (fun (_,inv) -> intersects wanted inv) cat
    in match passed with
       | [] -> failwith "Inventory.collect"
       | (key,inv)::l ->
         let key_max,inv_max = fold_max key inv wanted l in
         let rest,more = difference wanted inv_max in
         loop rest passed (union keys [key_max,1]) (union more extras)
  in loop wanted cat [] [];;
val collect&#160;: 'a inventory -> ('b, 'a) catalog -> int -> ('b, 'a) order = <fun>

Le type de la fonction semble correspondre, toutefois rien ne vaut un test sur un cas réel et c'est ce que nous allons faire dans le paragraphe suivant.

IV-A-4. 28. Cas d'usage du module Inventory

Voici quelques photographies d'une création originale en briques legos, un vaisseau de transport nommé "Frégate C.H.O.A.M." :

Image non disponible
Image non disponible
Image non disponible
Image non disponible

Dans un premier temps cette construction a été réalisée virtuellement sur ordinateur à l'aide du logiciel gratuit MLCad, un des meilleurs logiciels de modélisation en legos, le résultat de cette modélisation a été sauvegardé au format LDRAW dans le fichier choam_frigate.ldr.

Pour réellement construire cette création avec de vraies briques, on a procédé en deux temps :

  • le prix des briques au détail étant assez élevé, on a d'abord acheté 12 boîtes de legos qui fournissent la plus grosse partie de l'inventaire ;
  • les dernières briques manquantes ont été achetées au détail sur BrickLink, un site de vente en ligne de briques legos.

Le problème consiste alors à choisir au mieux les boîtes à acheter pour maximiser l'inventaire utile à notre construction tout en minimisant l'inventaire en surplus. Trop de surplus pourrait faire disparaître l'avantage économique de l'achat en gros sur l'achat au détail.

Pour commencer, il va nous falloir spécialiser nos routines d'inventaires, c'est le rôle du module LegoBricks :

 
Sélectionnez
module LegoBricks = struct
  ...
end;;

Les briques legos ont une couleur (color) :

 
Sélectionnez
type color =
   | Black | Blue | Clear | Green
   | OldBrown | OldDkGray | OldGray | Red
   | TrBlue | TrGreen | TrRed | TrYellow
   | White | Yellow;;

Et aussi un numéro de moulage composé d'un mélange de chiffres et de lettres, nous mettrons ce numéro dans un string et voilà comment nous définissons un inventaire de briques legos :

 
Sélectionnez
type brick = string * color;;
type inventory = brick Inventory.t;;

Quelques raccourcis utiles, avant de nous attaquer aux catalogues de modèles legos :

 
Sélectionnez
let make l = (Inventory.make l: inventory);;
let size a = Inventory.size a;;

Un modèle lego a un en-tête dans lequel on fera figurer son nom (name), son thème, son année de création (year), une adresse URL où l'on pourra trouver plus d'informations (home), son nombre de pièces et son nombre de mini-figurines (minifigs) :

 
Sélectionnez
type header =
 {name:string;
  theme:string;
  year:int;
  home:string;
  pieces:int;
  minifigs:int;
  };;

Maintenant nous pouvons définir un modèle lego, un catalogue de modèles legos, et enfin une commande de modèles legos :

 
Sélectionnez
type model   = header * inventory;;
type catalog = (header,brick) Inventory.catalog;;
type order   = (header,brick) Inventory.order;;

Bien entendu toutes ces définitions sont accompagnées de quelques mesures élémentaires de vérification, il serait imprudent de manipuler autant de données sans prendre quelques menues précautions :

 
Sélectionnez
let valid_header h =
  assert(h.year >= 1978);
  assert(h.pieces > 0);
  assert(h.minifigs >= 0);
  true;;
let valid_model (h,p: model) =
  assert(valid_header h);
  assert(h.pieces = size p);
  true;;
let valid_catalog (cat: catalog) =
  List.for_all valid_model cat;;

Nous en arrivons enfin à la solution à notre problème, une fonction collect spécialisée dans les modèles en legos :

 
Sélectionnez
let collect (wanted: inventory) (cat: catalog) margin =
  assert(valid_catalog cat);
  (Inventory.collect wanted cat margin: order);;

Il reste à extraire l'inventaire du fichier choam_frigate.ldr, ceci se fait à l'aide de fonctions d'analyse syntaxique que nous verrons dans un chapitre ultérieur, le résultat étant la source du module ChoamFrigate qui rend accessibles le modèle (ChoamFrigate.model), son en-tête (ChoamFrigate.header) et son inventaire (ChoamFrigate.parts) :

 
Sélectionnez
module ChoamFrigate = struct

open LegoBricks;;

let parts = make
  [
  ("3900",Black), 1;
  ("4479",Black), 1;
  ("3841",Black), 1;
  ("3962a",Black), 1;
  ("3957",Black), 8;
  ("3957",TrRed), 12;
  ("4873",Black), 2;
  ("4732",Blue), 4;
  ("3062b",Blue), 4;
  ("3062b",TrRed), 12;
  ("4070",Blue), 16;
  ("4070",White), 4;
  ("3004",Blue), 4;
  ("3004p06",Blue), 4;
  ("4595",Blue), 2;
  ("3622",Blue), 4;
  ("3009",Blue), 8;
  ("3963",Black), 16;
  ("3003",Blue), 4;
  ("3941",Blue), 8;
  ("3941",White), 4;
  ("3941",TrYellow), 6;
  ("3002",Blue), 12;
  ("3001",Blue), 15;
  ("3007",Blue), 4;
  ("3006",Blue), 2;
  ("3829",Blue), 4;
  ("4589",TrRed), 4;
  ("4346",Blue), 4;
  ("4345a",Blue), 4;
  ("4740",TrRed), 4;
  ("4285a",Blue), 4;
  ("3633",Blue), 4;
  ("3185",Blue), 2;
  ("4448",Blue), 4;
  ("4448",TrYellow), 6;
  ("3937",Blue), 4;
  ("3938",Blue), 4;
  ("4593",Black), 4;
  ("298",Black), 4;
  ("4315",Blue), 4;
  ("4349",Black), 4;
  ("3876",TrRed), 2;
  ("3837",Black), 1;
  ("774",Black), 1;
  ("4522",Black), 1;
  ("4006",Black), 1;
  ("3959",Blue), 4;
  ("3959",OldGray), 12;
  ("4215a",TrYellow), 4;
  ("30116",OldGray), 4;
  ("2345",White), 8;
  ("3024",TrGreen), 5;
  ("3024",TrRed), 21;
  ("4073",TrGreen), 6;
  ("4073",TrRed), 18;
  ("4085b",Blue), 4;
  ("4085b",White), 14;
  ("4085a",Blue), 8;
  ("4085a",White), 2;
  ("3023",Blue), 24;
  ("3023",White), 6;
  ("3794",Blue), 4;
  ("3839b",White), 4;
  ("4175",Blue), 4;
  ("3623",Blue), 12;
  ("3710",Black), 4;
  ("3710",Blue), 4;
  ("4590",Black), 10;
  ("4590",Blue), 8;
  ("4590",White), 4;
  ("4477",White), 2;
  ("3022",Black), 4;
  ("3022",Blue), 2;
  ("3022",OldGray), 4;
  ("4032",Black), 16;
  ("4229",Black), 8;
  ("3021",Blue), 4;
  ("3021",White), 12;
  ("3020",Blue), 16;
  ("3020",White), 4;
  ("3795",Blue), 12;
  ("3795",White), 3;
  ("3034",Blue), 7;
  ("3034",OldGray), 4;
  ("3034",White), 12;
  ("3832",Blue), 12;
  ("3832",White), 2;
  ("3032",Blue), 4;
  ("3032",White), 2;
  ("3035",Blue), 2;
  ("3030",Blue), 2;
  ("3030",White), 2;
  ("3029",Blue), 2;
  ("3029",White), 1;
  ("3958",TrYellow), 2;
  ("3036",White), 2;
  ("3033",Blue), 2;
  ("3028",Blue), 2;
  ("4151",OldGray), 1;
  ("6063",Black), 1;
  ("30363",Blue), 4;
  ("4286",Blue), 4;
  ("4287",Blue), 8;
  ("3747",Blue), 2;
  ("3747",White), 4;
  ("3040b",Blue), 4;
  ("3665",Blue), 8;
  ("3039",Blue), 8;
  ("3660",Blue), 10;
  ("3676",Blue), 4;
  ("3039p32",Blue), 2;
  ("3039p32",OldGray), 4;
  ("3039p05",Blue), 2;
  ("3039p34",Blue), 2;
  ("2342",Blue), 4;
  ("3940",Black), 4;
  ("4741",Blue), 6;
  ("4737",Blue), 8;
  ("4596",Blue), 6;
  ("4476",Blue), 10;
  ("4476",White), 4;
  ("2340",White), 4;
  ("4746",Black), 4;
  ("69c01",Blue), 4;
  ("3703",Blue), 2;
  ("3070b",Blue), 4;
  ("3070b",TrRed), 8;
  ("2412b",OldGray), 8;
  ("3069bp25",Blue), 2;
  ("3069b",Blue), 8;
  ("3069bp06",Blue), 4;
  ("3068bp07",White), 1;
  ("3068b",Blue), 4;
  ("3068b",White), 2;
  ("3068bp08",White), 2;
  ("4033",Blue), 4;
  ("4474",Blue), 2;
  ("4474",TrYellow), 2;
  ("3936",Blue), 2;
  ("3935",Blue), 2;
  ("3933",Blue), 6;
  ("3934",Blue), 6;
  ("3680c01",Blue), 2;
  ("73590a",Black), 8;
  ("73590a",White), 2;
  ("x467",Black), 4;
  ];;

let header =
 {name="CHOAM Frigate";
  theme="MOC/SpiceGuid/SYSTEM/Space/Classic";
  year=2000;
  home="http://pagesperso-orange.fr/tuttisoft";
  pieces=size parts;
  minifigs=0};;

let model = (header,parts: model);;

end;;

Voilà qui nous donne une première information, le nombre de pièces dans notre modèle :

 
Sélectionnez
# ChoamFrigate.header.pieces;;
-&#160;: int = 777

A priori pour faciliter notre construction il nous faudrait plutôt des boîtes legos de la famille 'espace', nous utilisons donc nos facilités d'analyse syntaxique pour générer un module LegoSpace qui rend notamment accessible LegoSpace.catalog, le catalogue de toutes les boîtes de lego de l'espace, le résultat est une base de données de plus de 5000 lignes :

 
Sélectionnez
module LegoSpace = struct

open LegoBricks;;

let spy_bot =
  let spy_bot_parts = make
  [
  ("4070",OldGray), 6;
  ("4595",Black), 1;
  ("3941",Black), 2;
  ("4589",Black), 4;
  ("3937",Black), 2;
  ("3938",Black), 2;
  ("4593",Black), 2;
  ("298",Black), 2;
  ("4275",OldGray), 2;
  ("2429",OldGray), 2;
  ("2430",OldGray), 2;
  ("4531",OldGray), 2;
  ("3959",Black), 1;
  ("4006",Black), 1;
  ("4073",TrGreen), 2;
  ("4085b",Black), 3;
  ("4085b",OldGray), 2;
  ("3023",OldGray), 2;
  ("4623",Black), 1;
  ("3839b",OldGray), 1;
  ("3623",Black), 2;
  ("4590",OldGray), 1;
  ("3022",OldGray), 2;
  ("4032",OldGray), 1;
  ("3021",OldGray), 1;
  ("3020",OldGray), 1;
  ("3040b",OldGray), 6;
  ("3039p34",OldGray), 1;
  ("3039p23",OldGray), 1;
  ("3749",OldGray), 2;
  ("3700",OldGray), 2;
  ("3069bp25",OldGray), 3;
  ("3680c01",Black), 1;
  ]
in let spy_bot_info =
 {name="Spy-Bot";
  theme="LEGO/SYSTEM/Space/Classic";
  year=1987;
  home="http://guide.lugnet.com/set/1498_1";
  pieces=size spy_bot_parts;
  minifigs=0}
in (spy_bot_info,spy_bot_parts: model);;
let set_1498_1= spy_bot;;


let twin_starfire =
  let twin_starfire_parts = make
  [
  ("3957",TrRed), 2;
  ("2436",White), 2;
  ("4588",TrRed), 2;
  ("3829",White), 2;
  ("4597",Blue), 2;
  ("4589",TrRed), 1;
  ("2335",White), 2;
  ("3937",White), 2;
  ("4593",Black), 2;
  ("298",White), 2;
  ("3838",Yellow), 2;
  ("193b",Yellow), 2;
  ("3959",Black), 2;
  ("3626ap01",Yellow), 2;
  ("970c00",Yellow), 2;
  ("4349",Blue), 2;
  ("973p90",Yellow), 2;
  ("3024",Blue), 4;
  ("4073",TrGreen), 2;
  ("4081a",White), 4;
  ("4085b",White), 2;
  ("3023",White), 2;
  ("3623",White), 2;
  ("3710",White), 8;
  ("4590",White), 1;
  ("3666",White), 6;
  ("3460",White), 2;
  ("3022",White), 1;
  ("3020",White), 2;
  ("3034",Blue), 1;
  ("3832",Blue), 1;
  ("2419",White), 2;
  ("3031",White), 1;
  ("4871",White), 1;
  ("4854",White), 1;
  ("3479",Blue), 1;
  ("4746",Blue), 1;
  ("3070b",TrRed), 2;
  ("3069bp05",White), 3;
  ("3069bp25",White), 1;
  ("2432",Blue), 2;
  ("3069bp06",White), 2;
  ("4858p90",White), 1;
  ("2418a",TrBlue), 2;
  ]
in let twin_starfire_info =
 {name="Twin Starfire";
  theme="LEGO/SYSTEM/Space/Classic";
  year=1987;
  home="http://guide.lugnet.com/set/1499_1";
  pieces=size twin_starfire_parts;
  minifigs=2}
in (twin_starfire_info,twin_starfire_parts: model);;
let set_1499_1 = twin_starfire;;


let space_scooter_1557 =
  let space_scooter_parts = make
  [
  ("4598",White), 1;
  ("4588",Black), 1;
  ("4595",OldGray), 2;
  ("4589",TrRed), 2;
  ("3942b",OldGray), 1;
  ("3937",OldGray), 1;
  ("3938",OldGray), 1;
  ("4593",OldGray), 2;
  ("298",Blue), 2;
  ("3838",Red), 1;
  ("193b",Red), 1;
  ("3626ap01",Yellow), 1;
  ("970c00",Red), 1;
  ("4349",Black), 2;
  ("973p90",Red), 1;
  ("3024",Blue), 2;
  ("3022",OldGray), 1;
  ("4032",OldGray), 2;
  ("3020",Blue), 1;
  ("3936",Blue), 1;
  ("3935",Blue), 1;
  ]
in let space_scooter_info =
 {name="Space Scooter";
  theme="LEGO/SYSTEM/Space/Classic";
  year=1986;
  home="http://guide.lugnet.com/set/1557_1";
  pieces=size space_scooter_parts;
  minifigs=1}
in (space_scooter_info,space_scooter_parts: model);;
let set_1557_1 = space_scooter_1557;;


let mobile_command_trailer =
  let mobile_command_trailer_parts = make
  [
  ("4589",Blue), 2;
  ("4589",TrRed), 2;
  ("4589",TrYellow), 2;
  ("4593",Black), 4;
  ("298",OldGray), 4;
  ("3640",Blue), 1;
  ("3639",Blue), 1;
  ("3838",Black), 1;
  ("3838",Yellow), 1;
  ("193b",Black), 1;
  ("193b",Yellow), 1;
  ("3962a",Black), 1;
  ("3626ap01",Yellow), 2;
  ("970c00",Black), 1;
  ("970c00",Yellow), 1;
  ("4736",OldGray), 2;
  ("4006",Black), 1;
  ("973p90",Black), 1;
  ("973p90",Yellow), 1;
  ("3024",TrYellow), 2;
  ("4073",TrYellow), 2;
  ("3023",Blue), 4;
  ("3710",Blue), 4;
  ("4590",Blue), 2;
  ("3022",Blue), 4;
  ("122c01",OldGray), 3;
  ("3795",Blue), 1;
  ("3031",Blue), 1;
  ("4740",TrYellow), 1;
  ("3040b",Blue), 2;
  ("2342",OldGray), 4;
  ("2336p35",Blue), 1;
  ("4735",OldGray), 2;
  ("4596",Blue), 1;
  ("3069bp25",Blue), 1;
  ("4288",Black), 6;
  ("4859",Blue), 1;
  ]
in let mobile_command_trailer_info =
 {name="Mobile Command Trailer";
  theme="LEGO/SYSTEM/Space/Classic";
  year=1986;
  home="http://guide.lugnet.com/set/1558_1";
  pieces=size mobile_command_trailer_parts;
  minifigs=2}
in (mobile_command_trailer_info,mobile_command_trailer_parts: model);;
let set_1558_1 = mobile_command_trailer;;


let lunar_scout =
  let lunar_scout_parts = make
  [
  ("4070",OldGray), 2;
  ("4595",Black), 2;
  ("4730",OldGray), 1;
  ("3002",OldGray), 1;
  ("3001",OldGray), 1;
  ("4346",OldGray), 2;
  ("4345a",OldGray), 2;
  ("4593",Black), 2;
  ("298",OldGray), 2;
  ("4315",OldGray), 1;
  ("73590a",OldGray), 2;
  ("3838",Blue), 1;
  ("193b",Blue), 1;
  ("3959",Black), 1;
  ("981",Blue), 1;
  ("982",Blue), 1;
  ("983",Blue), 2;
  ("3626ap01",Yellow), 1;
  ("970c00",Blue), 1;
  ("4349",Black), 1;
  ("4479",Black), 1;
  ("973p90",Blue), 1;
  ("3024",TrRed), 2;
  ("4073",TrRed), 2;
  ("4085a",OldGray), 4;
  ("3023",OldGray), 5;
  ("3022",OldGray), 2;
  ("3020",OldGray), 1;
  ("4740",TrRed), 2;
  ("3297p90",OldGray), 1;
  ("3039",OldGray), 1;
  ("3660",OldGray), 1;
  ("3039p32",OldGray), 1;
  ("2342",Black), 1;
  ("4735",Black), 1;
  ("3706",Black), 3;
  ("3700",OldGray), 1;
  ("3702",OldGray), 2;
  ("3713",OldGray), 6;
  ("3069bp25",OldGray), 1;
  ("3069b",OldGray), 2;
  ("4288",Black), 6;
  ("4474",TrGreen), 1;
  ]
in let lunar_scout_info =
 {name="Lunar Scout";
  theme="LEGO/SYSTEM/Space/Classic";
  year=1986;
  home="http://guide.lugnet.com/set/1580_1";
  pieces=size lunar_scout_parts;
  minifigs=1}
in (lunar_scout_info,lunar_scout_parts: model);;
let set_1580_1 = lunar_scout;;


let unnamed_1593 =
  let unnamed_1593_parts = make
  [
  ("3957",Black), 3;
  ("3957",OldGray), 3;
  ("792c02",OldGray), 2;
  ("3612",OldGray), 8;
  ("3613",OldGray), 1;
  ("3956",OldGray), 1;
  ("3956",White), 4;
  ("3005",OldGray), 2;
  ("3005",White), 4;
  ("3062b",TrGreen), 3;
  ("3062b",TrRed), 5;
  ("4070",OldGray), 4;
  ("3004",OldGray), 2;
  ("3004",White), 1;
  ("3004p90",White), 3;
  ("3622",White), 4;
  ("3010",White), 4;
  ("3010p04",White), 4;
  ("3963",Black), 2;
  ("3941",OldGray), 3;
  ("3941",White), 2;
  ("3829",Black), 1;
  ("3829",OldGray), 2;
  ("3942a",Black), 2;
  ("3942a",OldGray), 3;
  ("3942a",White), 2;
  ("3943",Black), 2;
  ("4221",OldGray), 2;
  ("4220",OldGray), 1;
  ("3937",OldGray), 1;
  ("3937",White), 2;
  ("3938",OldGray), 1;
  ("3938",White), 2;
  ("3831",OldGray), 2;
  ("3831",White), 2;
  ("3830",OldGray), 2;
  ("3830",White), 2;
  ("3838",Red), 1;
  ("3838",Yellow), 1;
  ("4360",Black), 1;
  ("193a",Red), 1;
  ("193a",Yellow), 1;
  ("3962a",Black), 1;
  ("3959",Black), 2;
  ("3959",OldGray), 2;
  ("3626ap01",Yellow), 2;
  ("970c00",Red), 1;
  ("970c00",Yellow), 1;
  ("3900",Black), 1;
  ("4006",Black), 1;
  ("973p90",Red), 1;
  ("973p90",Yellow), 1;
  ("3024",OldGray), 2;
  ("3024",Yellow), 2;
  ("3024",TrRed), 14;
  ("4081a",OldGray), 4;
  ("4081a",White), 4;
  ("4085a",White), 2;
  ("3023",OldGray), 4;
  ("3023",White), 4;
  ("3839b",Black), 3;
  ("3839b",OldGray), 3;
  ("4175",Black), 2;
  ("4175",OldGray), 4;
  ("3623",OldGray), 6;
  ("3623",Yellow), 2;
  ("3710",OldGray), 11;
  ("3710",White), 6;
  ("3666",OldGray), 6;
  ("3666",White), 2;
  ("3460",OldGray), 6;
  ("3460",White), 1;
  ("3022",OldGray), 7;
  ("3022",White), 1;
  ("4032",Black), 3;
  ("4229",OldGray), 2;
  ("3021",OldGray), 4;
  ("3020",OldGray), 7;
  ("3795",OldGray), 1;
  ("3795",White), 1;
  ("3034",OldGray), 3;
  ("3034",White), 1;
  ("3832",OldGray), 1;
  ("3032",OldGray), 1;
  ("3032",White), 4;
  ("3032",TrBlue), 1;
  ("3029",OldGray), 2;
  ("3958",OldGray), 1;
  ("3960",OldGray), 2;
  ("4285a",OldGray), 1;
  ("3298",White), 2;
  ("3747",OldGray), 4;
  ("4089",OldGray), 1;
  ("3298p90",OldGray), 1;
  ("3298p90",White), 1;
  ("3939",TrBlue), 1;
  ("3665",OldGray), 2;
  ("3039",OldGray), 1;
  ("3039p34",OldGray), 1;
  ("3039p34",White), 2;
  ("3039p23",OldGray), 1;
  ("3940",Black), 7;
  ("3479",White), 7;
  ("3707",Black), 3;
  ("3702",OldGray), 2;
  ("3713",OldGray), 6;
  ("3069b",White), 4;
  ("3680c01",OldGray), 1;
  ("4288",Black), 6;
  ("3856",White), 4;
  ("3853",White), 2;
  ("3936",OldGray), 4;
  ("3935",OldGray), 4;
  ("3933",OldGray), 1;
  ("3934",OldGray), 1;
  ]
in let unnamed_1593_info =
 {name="Unnamed #1593";
  theme="LEGO/SYSTEM/Space/Classic";
  year=1983;
  home="http://guide.lugnet.com/set/1593_1";
  pieces=size unnamed_1593_parts;
  minifigs=2}
in (unnamed_1593_info,unnamed_1593_parts: model);;
let set_1593_1 = unnamed_1593;;


let unnamed_1968 =
  let unnamed_1968_parts = make
  [
  ("3957",TrRed), 4;
  ("3956",Black), 1;
  ("4598",White), 1;
  ("4732",Black), 1;
  ("3062b",TrRed), 2;
  ("4070",Blue), 2;
  ("4070",OldGray), 6;
  ("3004",OldGray), 4;
  ("3004",White), 2;
  ("3004p06",OldGray), 2;
  ("3010",OldGray), 5;
  ("3010p04",OldGray), 2;
  ("3009",OldGray), 1;
  ("3003",OldGray), 2;
  ("3941",Black), 2;
  ("3941",White), 1;
  ("4730",White), 1;
  ("3006",Black), 1;
  ("4589",TrRed), 2;
  ("3937",Blue), 1;
  ("3938",Blue), 1;
  ("4213",TrYellow), 2;
  ("4593",Black), 2;
  ("298",Black), 2;
  ("4315",Black), 3;
  ("73590a",TrYellow), 6;
  ("3838",Red), 1;
  ("193b",Red), 1;
  ("3626ap01",Yellow), 1;
  ("970c00",Red), 1;
  ("4349",Black), 2;
  ("973p90",Red), 1;
  ("3024",OldGray), 2;
  ("3024",TrRed), 2;
  ("4073",TrBlue), 1;
  ("4073",TrRed), 1;
  ("3023",Black), 2;
  ("3023",Blue), 1;
  ("3023",OldGray), 2;
  ("3794",Blue), 1;
  ("3475b",Black), 2;
  ("3710",Black), 3;
  ("3710",OldGray), 9;
  ("4590",Black), 1;
  ("3460",OldGray), 2;
  ("3022",OldGray), 7;
  ("4032",Black), 3;
  ("4229",Black), 9;
  ("4600",OldGray), 2;
  ("3020",OldGray), 3;
  ("3795",OldGray), 2;
  ("3832",OldGray), 1;
  ("3031",OldGray), 1;
  ("3033",OldGray), 1;
  ("4740",TrBlue), 1;
  ("4740",TrGreen), 2;
  ("4740",TrRed), 2;
  ("4286",OldGray), 6;
  ("4287",OldGray), 2;
  ("3747",Black), 1;
  ("3747",OldGray), 2;
  ("3040b",OldGray), 10;
  ("3039p34",White), 1;
  ("3039p23",White), 1;
  ("3037",OldGray), 1;
  ("4735",Black), 2;
  ("4735",Blue), 2;
  ("3940",Black), 3;
  ("4737",Black), 2;
  ("3700",Black), 1;
  ("3069bp25",OldGray), 1;
  ("3068bp08",OldGray), 2;
  ("3641",Black), 4;
  ("4624",OldGray), 4;
  ("4474",TrGreen), 1;
  ("3936",OldGray), 2;
  ("3935",OldGray), 2;
  ("3933",OldGray), 2;
  ("3934",OldGray), 2;
  ]
in let unnamed_1968_info =
 {name="Unnamed #1968";
  theme="LEGO/SYSTEM/Space/Classic";
  year=1985;
  home="http://guide.lugnet.com/set/1968_1";
  pieces=size unnamed_1968_parts;
  minifigs=1}
in (unnamed_1968_info,unnamed_1968_parts: model);;
let set_1968_1 = unnamed_1968;;


let space_shuttle =
  let space_shuttle_parts = make
  [
  ("3957",OldGray), 1;
  ("3062a",TrGreen), 1;
  ("3963",OldGray), 2;
  ("3829",OldGray), 2;
  ("3838",White), 1;
  ("193a",White), 1;
  ("3959",OldGray), 1;
  ("3626ap01",Yellow), 1;
  ("970c00",White), 1;
  ("973p90",White), 1;
  ("3024",OldGray), 2;
  ("3024",TrRed), 2;
  ("3023",OldGray), 2;
  ("3794",OldGray), 1;
  ("3839a",OldGray), 1;
  ("3475b",OldGray), 2;
  ("3623",OldGray), 2;
  ("3460",OldGray), 1;
  ("3021",OldGray), 1;
  ("3020",OldGray), 2;
  ("3795",OldGray), 3;
  ("3035",OldGray), 1;
  ("3298p90",OldGray), 1;
  ("3039p34",OldGray), 1;
  ("3479",OldGray), 1;
  ("3936",OldGray), 2;
  ("3935",OldGray), 2;
  ]
in let space_shuttle_info =
 {name="Space Shuttle";
  theme="LEGO/SYSTEM/Space/Classic";
  year=1979;
  home="http://guide.lugnet.com/set/442_1";
  pieces=size space_shuttle_parts;
  minifigs=1}
in (space_shuttle_info,space_shuttle_parts: model);;
let set_442_1 = space_shuttle;;
let set_891_1 = space_shuttle;;


let mobile_tracking_station =
  let mobile_tracking_station_parts = make
  [
  ("3957",OldGray), 1;
  ("3005",OldGray), 2;
  ("3062a",OldGray), 2;
  ("3062a",TrGreen), 1;
  ("3004",OldGray), 4;
  ("3004p90",OldGray), 2;
  ("3065",TrYellow), 3;
  ("3622",OldGray), 2;
  ("3001",OldGray), 1;
  ("3788",OldGray), 2;
  ("3787",OldGray), 2;
  ("3829",OldGray), 1;
  ("3937",OldGray), 1;
  ("3938",OldGray), 1;
  ("3831",OldGray), 2;
  ("3830",OldGray), 2;
  ("3838",OldGray), 1;
  ("3838",White), 1;
  ("193a",White), 1;
  ("3876",Clear), 2;
  ("3959",OldGray), 1;
  ("3626ap01",Yellow), 1;
  ("970c00",White), 1;
  ("973p90",White), 1;
  ("3024",TrRed), 1;
  ("3023",OldGray), 2;
  ("3794",OldGray), 2;
  ("3839a",OldGray), 1;
  ("3710",OldGray), 2;
  ("3022",OldGray), 2;
  ("3731",OldGray), 1;
  ("3730",OldGray), 1;
  ("122c01",OldGray), 4;
  ("3021",OldGray), 4;
  ("3020",OldGray), 2;
  ("3034",OldGray), 1;
  ("3960",OldGray), 1;
  ("3039p23",OldGray), 1;
  ("3651",OldGray), 1;
  ("3070b",OldGray), 2;
  ("3069b",OldGray), 3;
  ("3680c01",OldGray), 1;
  ("3641",Black), 8;
  ]
in let mobile_tracking_station_info =
 {name="Mobile Tracking Station";
  theme="LEGO/SYSTEM/Space/Classic";
  year=1979;
  home="http://guide.lugnet.com/set/452_1";
  pieces=size mobile_tracking_station_parts;
  minifigs=1}
in (mobile_tracking_station_info,mobile_tracking_station_parts: model);;
let set_452_1 = mobile_tracking_station;;
let set_894_1 = mobile_tracking_station;;


let rocket_launcher =
  let rocket_launcher_parts = make
  [
  ("3957",OldGray), 1;
  ("3956",OldGray), 2;
  ("3062a",TrGreen), 1;
  ("3963",OldGray), 1;
  ("3941",Black), 2;
  ("3941",White), 6;
  ("3787",OldGray), 5;
  ("3829",OldGray), 1;
  ("3942a",Black), 1;
  ("3942a",White), 1;
  ("3937",OldGray), 1;
  ("3938",OldGray), 1;
  ("3324c01",OldGray), 1;
  ("3838",Red), 1;
  ("3838",OldGray), 1;
  ("3838",White), 1;
  ("193a",Red), 1;
  ("193a",White), 1;
  ("3962a",Black), 1;
  ("3626ap01",Yellow), 2;
  ("970c00",Red), 1;
  ("970c00",White), 1;
  ("973p90",Red), 1;
  ("973p90",White), 1;
  ("3024",OldGray), 2;
  ("3024",TrRed), 1;
  ("3023",OldGray), 3;
  ("3794",Red), 2;
  ("3794",OldGray), 2;
  ("3022",OldGray), 1;
  ("3731",OldGray), 1;
  ("3730",OldGray), 1;
  ("122c01",OldGray), 5;
  ("3020",OldGray), 3;
  ("3795",OldGray), 3;
  ("3034",OldGray), 1;
  ("3960",OldGray), 1;
  ("3039p23",OldGray), 1;
  ("3479",OldGray), 2;
  ("3680c01",OldGray), 1;
  ("3641",Black), 10;
  ]
in let rocket_launcher_info =
 {name="Rocket Launcher";
  theme="LEGO/SYSTEM/Space/Classic";
  year=1978;
  home="http://guide.lugnet.com/set/462_1";
  pieces=size rocket_launcher_parts;
  minifigs=2}
in (rocket_launcher_info,rocket_launcher_parts: model);;
let set_462_1 = rocket_launcher;;
let set_897_1 = rocket_launcher;;


let alpha1_rocket_base =
  let alpha1_rocket_base_parts = make
  [
  ("3957",OldGray), 3;
  ("3947",OldGray), 1;
  ("3956",Blue), 4;
  ("3956",OldGray), 3;
  ("3005",Blue), 7;
  ("3062a",OldGray), 2;
  ("3062a",TrGreen), 2;
  ("3062a",TrRed), 3;
  ("3004",Blue), 7;
  ("3622",Blue), 1;
  ("3010",Blue), 2;
  ("3066",TrYellow), 9;
  ("3009",Blue), 4;
  ("3008",Blue), 1;
  ("3003",Blue), 1;
  ("3941",Black), 2;
  ("3941",Blue), 6;
  ("3941",OldGray), 11;
  ("3941",White), 8;
  ("3002",Blue), 1;
  ("3788",OldGray), 2;
  ("3787",OldGray), 2;
  ("3829",Blue), 2;
  ("3829",OldGray), 2;
  ("3942a",Black), 1;
  ("3942a",White), 1;
  ("3937",OldGray), 1;
  ("3938",OldGray), 1;
  ("3149c01",Blue), 1;
  ("x467",Black), 3;
  ("3838",Red), 1;
  ("3838",OldGray), 1;
  ("3838",White), 2;
  ("193a",Red), 1;
  ("193a",White), 2;
  ("3962a",Black), 2;
  ("3626ap01",Yellow), 3;
  ("970c00",Red), 1;
  ("970c00",White), 2;
  ("4006",Black), 1;
  ("973p90",Red), 1;
  ("973p90",White), 2;
  ("3024",Blue), 1;
  ("3024",TrGreen), 4;
  ("3024",TrRed), 2;
  ("3023",OldGray), 2;
  ("3023",Yellow), 2;
  ("3794",OldGray), 3;
  ("3839a",OldGray), 8;
  ("3710",Blue), 2;
  ("3710",OldGray), 1;
  ("3710",Yellow), 2;
  ("3666",Blue), 2;
  ("3022",OldGray), 1;
  ("3731",OldGray), 1;
  ("3730",OldGray), 1;
  ("122c01",OldGray), 4;
  ("3020",Blue), 1;
  ("3020",OldGray), 4;
  ("3795",OldGray), 1;
  ("3034",Blue), 1;
  ("3832",Blue), 2;
  ("3029",Blue), 1;
  ("3036",Blue), 1;
  ("3036",TrYellow), 1;
  ("3960",OldGray), 1;
  ("3660p01",Blue), 3;
  ("3039p34",Blue), 2;
  ("3039p34",OldGray), 1;
  ("3039p23",Blue), 1;
  ("3479",Blue), 4;
  ("69c01",Blue), 4;
  ("3680c01",OldGray), 1;
  ("3641",Black), 8;
  ]
in let alpha1_rocket_base_info =
 {name="Alpha-1 Rocket Base";
  theme="LEGO/SYSTEM/Space/Classic";
  year=1979;
  home="http://guide.lugnet.com/set/483_1";
  pieces=size alpha1_rocket_base_parts;
  minifigs=3}
in (alpha1_rocket_base_info,alpha1_rocket_base_parts: model);;
let set_483_1 = alpha1_rocket_base;;
let set_920_2 = alpha1_rocket_base;;


let space_cruiser =
  let space_cruiser_parts = make
  [
  ("3957",OldGray), 1;
  ("3956",Blue), 2;
  ("3062a",TrGreen), 1;
  ("3004",Blue), 5;
  ("3004",White), 1;
  ("3004p90",Blue), 2;
  ("3004p20",Blue), 2;
  ("3065",TrYellow), 4;
  ("3622",Blue), 2;
  ("3010",Blue), 3;
  ("3010p924",Blue), 2;
  ("3066",TrYellow), 2;
  ("3009",Blue), 1;
  ("3008",Blue), 2;
  ("3963",OldGray), 2;
  ("3003",Blue), 2;
  ("3941",OldGray), 2;
  ("3829",OldGray), 2;
  ("3943a",OldGray), 2;
  ("3822",White), 1;
  ("3821",White), 1;
  ("3430c00",OldGray), 1;
  ("3937",Blue), 2;
  ("3938",Blue), 2;
  ("3831",Blue), 2;
  ("3830",Blue), 2;
  ("3838",Red), 1;
  ("3838",White), 1;
  ("193a",Red), 1;
  ("193a",White), 1;
  ("3959",OldGray), 1;
  ("3626ap01",Yellow), 2;
  ("970c00",Red), 1;
  ("970c00",White), 1;
  ("4006",Black), 1;
  ("973p90",Red), 1;
  ("973p90",White), 1;
  ("3024",TrGreen), 2;
  ("3024",TrRed), 2;
  ("3023",Blue), 8;
  ("3023",White), 2;
  ("3839a",OldGray), 1;
  ("3623",Black), 2;
  ("3623",Blue), 2;
  ("3623",OldGray), 2;
  ("3623",Yellow), 2;
  ("3710",Blue), 7;
  ("3666",Blue), 1;
  ("3666",OldGray), 2;
  ("3460",Blue), 2;
  ("3460",OldGray), 2;
  ("3022",Blue), 2;
  ("122c01",OldGray), 2;
  ("3021",Blue), 2;
  ("3021",OldGray), 4;
  ("3020",Blue), 6;
  ("3020",OldGray), 4;
  ("3020",White), 2;
  ("3795",OldGray), 1;
  ("3032",OldGray), 1;
  ("3030",OldGray), 3;
  ("3030",TrYellow), 1;
  ("3958",OldGray), 2;
  ("3027",OldGray), 1;
  ("3939",TrYellow), 2;
  ("3939p91",Blue), 1;
  ("3665",Blue), 2;
  ("3660",Blue), 2;
  ("3039p34",OldGray), 1;
  ("3039p23",OldGray), 1;
  ("3940",OldGray), 4;
  ("3479",Blue), 2;
  ("3479",OldGray), 4;
  ("3069b",Blue), 8;
  ("3068b",Blue), 4;
  ("3641",Black), 4;
  ("3933",OldGray), 3;
  ("3934",OldGray), 3;
  ]
in let space_cruiser_info =
 {name="Space Cruiser";
  theme="LEGO/SYSTEM/Space/Classic";
  year=1978;
  home="http://guide.lugnet.com/set/487_1";
  pieces=size space_cruiser_parts;
  minifigs=2}
in (space_cruiser_info,space_cruiser_parts: model);;
let set_487_1 = space_cruiser;;
let set_924_1 = space_cruiser;;


let space_command_center =
  let space_command_center_parts = make
  [
  ("3957",OldGray), 2;
  ("3144",OldGray), 2;
  ("3811",OldGray), 1;
  ("3947",OldGray), 1;
  ("3956",OldGray), 1;
  ("3062a",TrGreen), 1;
  ("3062a",TrRed), 2;
  ("3004",Blue), 19;
  ("3004p90",Blue), 2;
  ("3004p20",Blue), 1;
  ("3010",Blue), 1;
  ("3066",TrYellow), 3;
  ("3009",Blue), 4;
  ("3067",TrYellow), 3;
  ("3754p01",Blue), 1;
  ("3008",Blue), 5;
  ("3003",Blue), 3;
  ("3063",OldGray), 8;
  ("3941",Blue), 1;
  ("3941",OldGray), 2;
  ("3002",Blue), 8;
  ("3787",OldGray), 2;
  ("3829",OldGray), 2;
  ("3937",OldGray), 2;
  ("3938",OldGray), 2;
  ("3838",Red), 2;
  ("3838",OldGray), 2;
  ("3838",White), 2;
  ("193a",Red), 2;
  ("193a",White), 2;
  ("3962a",Black), 2;
  ("3959",OldGray), 1;
  ("3626ap01",Yellow), 4;
  ("970c00",Red), 2;
  ("970c00",White), 2;
  ("973p90",Red), 2;
  ("973p90",White), 2;
  ("3023",Blue), 2;
  ("3023",OldGray), 1;
  ("3794",OldGray), 5;
  ("3839a",OldGray), 3;
  ("3460",Blue), 4;
  ("3481",Blue), 1;
  ("122c01",OldGray), 4;
  ("3021",Blue), 1;
  ("3021",OldGray), 2;
  ("3020",OldGray), 4;
  ("3795",OldGray), 2;
  ("3036",TrYellow), 2;
  ("3456",Blue), 1;
  ("3027",Blue), 1;
  ("3960",OldGray), 1;
  ("3961",OldGray), 1;
  ("3665",Blue), 4;
  ("3040a",Blue), 6;
  ("3040a",OldGray), 4;
  ("3039",OldGray), 5;
  ("3660",Blue), 4;
  ("3660p01",Blue), 3;
  ("3039p34",Blue), 1;
  ("3039p23",Blue), 3;
  ("3678",Clear), 2;
  ("3940",OldGray), 1;
  ("3479",Blue), 5;
  ("3703",Blue), 1;
  ("3680c01",Blue), 1;
  ("3680c01",OldGray), 3;
  ("3641",Black), 8;
  ]
in let space_command_center_info =
 {name="Space Command Center";
  theme="LEGO/SYSTEM/Space/Classic";
  year=1978;
  home="http://guide.lugnet.com/set/493_1";
  pieces=size space_command_center_parts;
  minifigs=4}
in (space_command_center_info,space_command_center_parts: model);;
let set_493_1 = space_command_center;;
let set_926_1 = space_command_center;;


let galaxy_explorer =
  let galaxy_explorer_parts = make
  [
  ("3957",OldGray), 2;
  ("3144",OldGray), 1;
  ("6099px2",OldGray), 1;
  ("3947",OldGray), 1;
  ("3956",Blue), 2;
  ("3956",OldGray), 3;
  ("3005",Blue), 6;
  ("3062a",TrGreen), 1;
  ("3062a",TrRed), 15;
  ("3004",Blue), 4;
  ("3004p90",Blue), 4;
  ("3004p20",Blue), 2;
  ("3622",Blue), 10;
  ("3010",Blue), 10;
  ("3010p04",Blue), 3;
  ("3010p928",Blue), 2;
  ("3066",TrYellow), 7;
  ("3009",Blue), 1;
  ("3067",TrYellow), 2;
  ("3008",Blue), 7;
  ("3963",OldGray), 2;
  ("3941",OldGray), 4;
  ("3001",Blue), 3;
  ("3829",OldGray), 2;
  ("3942a",OldGray), 2;
  ("3943a",OldGray), 7;
  ("3822",OldGray), 1;
  ("3821",OldGray), 1;
  ("3937",Blue), 2;
  ("3938",Blue), 2;
  ("3831",Blue), 4;
  ("3830",Blue), 4;
  ("3149c01",OldGray), 1;
  ("3838",Red), 2;
  ("3838",OldGray), 1;
  ("3838",White), 2;
  ("193a",Red), 2;
  ("193a",White), 2;
  ("3962a",Black), 2;
  ("3959",OldGray), 1;
  ("3626ap01",Yellow), 4;
  ("970c00",Red), 2;
  ("970c00",White), 2;
  ("4006",Black), 1;
  ("973p90",Red), 2;
  ("973p90",White), 2;
  ("3024",Blue), 2;
  ("3024",TrGreen), 2;
  ("3024",TrRed), 2;
  ("3023",Blue), 2;
  ("3023",OldGray), 2;
  ("3794",OldGray), 1;
  ("3839a",OldGray), 4;
  ("3623",Black), 4;
  ("3623",Blue), 4;
  ("3623",Yellow), 8;
  ("3710",Blue), 6;
  ("3710",OldGray), 5;
  ("3666",Blue), 3;
  ("3666",OldGray), 7;
  ("3460",Blue), 4;
  ("3460",OldGray), 6;
  ("3022",Blue), 2;
  ("3022",OldGray), 6;
  ("122c01",OldGray), 2;
  ("3021",Blue), 2;
  ("3021",OldGray), 5;
  ("3020",Blue), 1;
  ("3020",OldGray), 4;
  ("3795",Blue), 2;
  ("3795",OldGray), 5;
  ("3034",OldGray), 10;
  ("3832",OldGray), 3;
  ("3031",OldGray), 2;
  ("3032",Blue), 4;
  ("3032",OldGray), 1;
  ("3035",Blue), 1;
  ("3035",OldGray), 2;
  ("3030",OldGray), 3;
  ("3030",TrYellow), 1;
  ("3029",OldGray), 2;
  ("3958",OldGray), 3;
  ("3028",OldGray), 2;
  ("3961",OldGray), 1;
  ("3298",OldGray), 2;
  ("3297",OldGray), 2;
  ("3939",TrYellow), 3;
  ("3939p91",Blue), 1;
  ("3040b",Blue), 4;
  ("3665",Blue), 2;
  ("3039",OldGray), 1;
  ("3660",Blue), 9;
  ("3039p34",Blue), 1;
  ("3039p34",OldGray), 1;
  ("3039p23",Blue), 1;
  ("3039p23",OldGray), 1;
  ("3940",OldGray), 5;
  ("3479",Blue), 8;
  ("3479",OldGray), 6;
  ("3070b",Blue), 2;
  ("3069b",Blue), 7;
  ("3641",Black), 4;
  ("3936",OldGray), 2;
  ("3935",OldGray), 2;
  ("3933",OldGray), 4;
  ("3934",OldGray), 4;
  ]
in let galaxy_explorer_info =
 {name="Galaxy Explorer";
  theme="LEGO/SYSTEM/Space/Classic";
  year=1979;
  home="http://guide.lugnet.com/set/497_1";
  pieces=size galaxy_explorer_parts;
  minifigs=4}
in (galaxy_explorer_info,galaxy_explorer_parts: model);;
let set_497_1 = galaxy_explorer;;
let set_928_1 = galaxy_explorer;;


let light_sound_sonic_robot =
  let light_sound_sonic_robot_parts = make
  [
  ("3957",TrRed), 2;
  ("792c02",White), 2;
  ("3612",White), 8;
  ("3613",White), 2;
  ("3956",White), 4;
  ("4598",White), 2;
  ("4588",TrRed), 2;
  ("3004p06",White), 1;
  ("3963",White), 2;
  ("4589",TrRed), 2;
  ("4760c01",White), 1;
  ("4767",White), 1;
  ("4774c01",White), 1;
  ("4773",TrGreen), 1;
  ("4773",TrRed), 1;
  ("4221",Black), 4;
  ("4220",White), 2;
  ("4593",Black), 4;
  ("298",Black), 4;
  ("73590a",TrYellow), 2;
  ("3838",Blue), 1;
  ("3838",Red), 1;
  ("193b",Blue), 1;
  ("193b",Red), 1;
  ("3626ap01",Yellow), 2;
  ("970c00",Blue), 1;
  ("970c00",Red), 1;
  ("4349",White), 4;
  ("973p90",Blue), 1;
  ("973p90",Red), 1;
  ("3024",TrGreen), 3;
  ("3024",TrRed), 2;
  ("4085b",Black), 2;
  ("3023",White), 5;
  ("3794",White), 3;
  ("3623",White), 2;
  ("4032",Black), 2;
  ("4229",Black), 4;
  ("3021",White), 4;
  ("3795",White), 1;
  ("3958",Black), 1;
  ("4286",White), 2;
  ("4089",Black), 2;
  ("3040b",White), 2;
  ("3660p01",White), 1;
  ("4735",Black), 2;
  ("3069b",White), 2;
  ("3069bp06",White), 2;
  ("3068bp08",White), 2;
  ("3680c01",Black), 1;
  ]
in let light_sound_sonic_robot_info =
 {name="Light & Sound Sonic Robot";
  theme="LEGO/SYSTEM/Space/Classic";
  year=1987;
  home="http://guide.lugnet.com/set/6750_1";
  pieces=size light_sound_sonic_robot_parts;
  minifigs=2}
in (light_sound_sonic_robot_info,light_sound_sonic_robot_parts: model);;
let set_6750_1 = light_sound_sonic_robot;;


let light_sound_xt_starship =
  let light_sound_xt_starship_parts = make
  [
  ("3957",TrRed), 6;
  ("3956",White), 4;
  ("4732",Black), 2;
  ("3005",White), 2;
  ("4588",TrRed), 2;
  ("3004p06",White), 2;
  ("3004p01",White), 2;
  ("3622",White), 2;
  ("3010",White), 2;
  ("3010p04",White), 2;
  ("3009",White), 1;
  ("3008",White), 1;
  ("3963",Black), 6;
  ("3003",White), 3;
  ("4730",White), 1;
  ("4591",White), 1;
  ("3002",White), 3;
  ("3006",White), 1;
  ("4589",Black), 2;
  ("4589",White), 1;
  ("4589",TrRed), 4;
  ("4760c01",White), 1;
  ("4767",White), 2;
  ("4771",White), 1;
  ("4774c01",White), 1;
  ("4773",TrGreen), 2;
  ("4773",TrRed), 2;
  ("4773",TrYellow), 2;
  ("4757",White), 1;
  ("4758",White), 1;
  ("3937",White), 1;
  ("3938",White), 1;
  ("4593",Black), 4;
  ("298",Black), 4;
  ("4315",White), 1;
  ("73590a",Black), 2;
  ("73590a",TrYellow), 2;
  ("3838",Yellow), 1;
  ("193b",Yellow), 1;
  ("3626ap01",Yellow), 1;
  ("970c00",Yellow), 1;
  ("973p90",Yellow), 1;
  ("4865",White), 4;
  ("3024",White), 2;
  ("3024",TrGreen), 2;
  ("3024",TrRed), 4;
  ("4081a",White), 4;
  ("4085b",White), 4;
  ("3023",Black), 8;
  ("3023",White), 9;
  ("3839b",White), 2;
  ("3022",Black), 1;
  ("3022",White), 7;
  ("4032",White), 3;
  ("4229",Black), 10;
  ("3021",Black), 1;
  ("3020",Black), 1;
  ("3020",White), 5;
  ("3795",White), 1;
  ("3031",White), 1;
  ("4740",TrGreen), 2;
  ("4740",TrRed), 3;
  ("3747",White), 6;
  ("3298p90",White), 1;
  ("3040b",White), 2;
  ("3665",White), 6;
  ("3660",White), 2;
  ("3039p34",White), 2;
  ("4735",Black), 2;
  ("4596",White), 1;
  ("4476",White), 6;
  ("4746",Black), 3;
  ("3700",White), 3;
  ("3673",OldGray), 1;
  ("3069bp25",OldGray), 1;
  ("3069b",White), 1;
  ("3069bp06",White), 2;
  ("3068b",White), 2;
  ("3068bp08",White), 2;
  ("4474",TrBlue), 1;
  ("3936",White), 1;
  ("3935",White), 1;
  ("4475",White), 1;
  ]
in let light_sound_xt_starship_info =
 {name="Light & Sound XT - Starship";
  theme="LEGO/SYSTEM/Space/Classic";
  year=1987;
  home="http://guide.lugnet.com/set/6780_1";
  pieces=size light_sound_xt_starship_parts;
  minifigs=1}
in (light_sound_xt_starship_info,light_sound_xt_starship_parts: model);;
let set_6780_1 = light_sound_xt_starship;;


let sonar_transmitting_cruiser =
  let sonar_transmitting_cruiser_parts = make
  [
  ("3957",TrRed), 2;
  ("3956",White), 1;
  ("4732",Black), 2;
  ("3005",White), 12;
  ("4588",TrRed), 2;
  ("4070",Blue), 2;
  ("4070",White), 4;
  ("3004",Blue), 1;
  ("3004",White), 10;
  ("4595",Black), 4;
  ("3622",White), 2;
  ("3010",White), 3;
  ("3010p04",White), 2;
  ("3009",White), 3;
  ("3963",Black), 1;
  ("3003",White), 8;
  ("3941",Black), 2;
  ("3941",Blue), 1;
  ("4730",White), 7;
  ("3002",Black), 2;
  ("3002",White), 3;
  ("4589",Black), 4;
  ("4589",TrRed), 3;
  ("3943",Black), 1;
  ("4760c01",White), 1;
  ("4767",White), 2;
  ("4771",White), 1;
  ("4774c01",White), 1;
  ("4773",TrGreen), 2;
  ("4773",TrRed), 2;
  ("4757",White), 2;
  ("4758",White), 3;
  ("3633",White), 2;
  ("3937",White), 1;
  ("3938",White), 1;
  ("4213",TrBlue), 2;
  ("4593",Black), 6;
  ("298",Black), 6;
  ("4315",Black), 4;
  ("4315",White), 1;
  ("3149c01",White), 1;
  ("4625",White), 2;
  ("73590a",Black), 6;
  ("3838",Red), 1;
  ("3838",Yellow), 1;
  ("193b",Red), 1;
  ("193b",Yellow), 1;
  ("3962a",Black), 1;
  ("3959",Black), 1;
  ("3626ap01",Yellow), 2;
  ("970c00",Red), 1;
  ("970c00",Yellow), 1;
  ("4006",Black), 1;
  ("973p90",Red), 1;
  ("973p90",Yellow), 1;
  ("2345",White), 8;
  ("4868",White), 2;
  ("3024",White), 8;
  ("3024",TrGreen), 4;
  ("3024",TrRed), 5;
  ("3024",TrYellow), 2;
  ("4085b",White), 10;
  ("3023",Black), 8;
  ("3023",White), 14;
  ("3794",White), 3;
  ("3839b",Black), 1;
  ("3623",White), 2;
  ("3710",White), 4;
  ("4590",Black), 8;
  ("3666",Black), 2;
  ("3666",White), 4;
  ("3460",White), 3;
  ("3022",White), 15;
  ("4032",Black), 4;
  ("122c01",Black), 2;
  ("3021",White), 17;
  ("3020",Black), 3;
  ("3020",White), 5;
  ("3795",White), 8;
  ("3034",White), 1;
  ("3832",White), 1;
  ("3031",Black), 1;
  ("3036",Black), 2;
  ("4740",TrRed), 1;
  ("4285a",Black), 2;
  ("3747",Black), 2;
  ("3040b",White), 3;
  ("3040px5",White), 2; (* Unofficial part *)
  ("3660",White), 2;
  ("3039p32",White), 1;
  ("3039p05",White), 1;
  ("3039p23",White), 2;
  ("2342",Black), 3;
  ("2342",White), 1;
  ("4735",Black), 1;
  ("4735",Blue), 2;
  ("4476",White), 2;
  ("2340",Black), 2;
  ("3700",White), 7;
  ("3069bp05",White), 4;
  ("3069b",White), 1;
  ("3069bp06",White), 6;
  ("3068b",White), 2;
  ("3068bp07",White), 2;
  ("3068bp08",White), 2;
  ("4288",Black), 4;
  ("4859",Black), 1;
  ("4859",White), 1;
  ("4858p90",White), 1;
  ("4856",White), 1;
  ("4474",Black), 2;
  ("4474",TrBlue), 3;
  ("3936",White), 1;
  ("3935",White), 1;
  ]
in let sonar_transmitting_cruiser_info =
 {name="Sonar Transmitting Cruiser";
  theme="LEGO/SYSTEM/Space/Classic";
  year=1988;
  home="http://guide.lugnet.com/set/6783_1";
  pieces=size sonar_transmitting_cruiser_parts;
  minifigs=2}
in (sonar_transmitting_cruiser_info,sonar_transmitting_cruiser_parts: model);;
let set_6783_1 = sonar_transmitting_cruiser;;


let rocket_sled =
  let rocket_sled_parts = make
  [
  ("3957",OldGray), 1;
  ("3963",Black), 2;
  ("3829",OldGray), 1;
  ("3838",White), 1;
  ("193a",White), 1;
  ("3962a",Black), 1;
  ("3959",Black), 1;
  ("3626ap01",Yellow), 1;
  ("970c00",White), 1;
  ("973p90",White), 1;
  ("4085a",OldGray), 3;
  ("3023",OldGray), 1;
  ("3839a",Black), 3;
  ("3022",OldGray), 1;
  ("3795",OldGray), 1;
  ("3960",OldGray), 1;
  ("3039p34",OldGray), 1;
  ("3709b",OldGray), 1;
  ]
in let rocket_sled_info =
 {name="Rocket Sled";
  theme="LEGO/SYSTEM/Space/Classic";
  year=1981;
  home="http://guide.lugnet.com/set/6801_1";
  pieces=size rocket_sled_parts;
  minifigs=1}
in (rocket_sled_info,rocket_sled_parts: model);;
let set_6801_1 = rocket_sled;;


let space_probe =
  let space_probe_parts = make
  [
  ("4588",Black), 1;
  ("4588",White), 1;
  ("3062b",Black), 1;
  ("4733",Black), 1;
  ("4589",White), 1;
  ("3937",OldGray), 1;
  ("3938",OldGray), 1;
  ("4593",Black), 2;
  ("298",Black), 2;
  ("3838",Yellow), 1;
  ("193b",Yellow), 1;
  ("3626ap01",Yellow), 1;
  ("970c00",Yellow), 1;
  ("973p90",Yellow), 1;
  ("122c01",OldGray), 2;
  ("3795",OldGray), 1;
  ("2342",OldGray), 1;
  ("4735",Black), 2;
  ("3704",Black), 1;
  ("3700",OldGray), 1;
  ("3641",Black), 4;
  ]
in let space_probe_info =
 {name="Space Probe";
  theme="LEGO/SYSTEM/Space/Classic";
  year=1986;
  home="http://guide.lugnet.com/set/6802_1";
  pieces=size space_probe_parts;
  minifigs=1}
in (space_probe_info,space_probe_parts: model);;
let set_6802_1 = space_probe;;


let space_patrol =
  let space_patrol_parts = make
  [
  ("3957",Blue), 1;
  ("3062b",TrRed), 2;
  ("3963",Blue), 2;
  ("3829",Blue), 1;
  ("3838",White), 1;
  ("4360",Black), 1;
  ("193a",White), 1;
  ("3626ap01",Yellow), 1;
  ("970c00",White), 1;
  ("973p90",White), 1;
  ("3024",Blue), 2;
  ("4073",TrYellow), 2;
  ("4081a",Blue), 2;
  ("3023",Blue), 1;
  ("3839b",OldGray), 1;
  ("3034",OldGray), 1;
  ("4286",Blue), 2;
  ("3933",OldGray), 1;
  ("3934",OldGray), 1;
  ]
in let space_patrol_info =
 {name="Space Patrol";
  theme="LEGO/SYSTEM/Space/Classic";
  year=1983;
  home="http://guide.lugnet.com/set/6803_1";
  pieces=size space_patrol_parts;
  minifigs=1}
in (space_patrol_info,space_patrol_parts: model);;
let set_6803_1 = space_patrol;;


let surface_rover =
  let surface_rover_parts = make
  [
  ("4598",Blue), 1;
  ("4588",OldGray), 1;
  ("3829",Blue), 1;
  ("3838",White), 1;
  ("193b",White), 1;
  ("3962a",Black), 1;
  ("3626ap01",Yellow), 1;
  ("970c00",White), 1;
  ("4349",OldGray), 2;
  ("973p90",White), 1;
  ("4073",TrRed), 2;
  ("122c01",OldGray), 2;
  ("3020",Blue), 1;
  ("4596",Blue), 1;
  ("3641",Black), 4;
  ]
in let surface_rover_info =
 {name="Surface Rover";
  theme="LEGO/SYSTEM/Space/Classic";
  year=1984;
  home="http://guide.lugnet.com/set/6804_1";
  pieces=size surface_rover_parts;
  minifigs=1}
in (surface_rover_info,surface_rover_parts: model);;
let set_6804_1 = surface_rover;;


let astro_dasher =
  let astro_dasher_parts = make
  [
  ("4598",OldGray), 1;
  ("3941",Black), 1;
  ("4589",TrRed), 3;
  ("4593",Black), 2;
  ("298",Black), 2;
  ("3838",Blue), 1;
  ("4360",Black), 1;
  ("193b",Blue), 1;
  ("3626ap01",Yellow), 1;
  ("970c00",Blue), 1;
  ("973p90",Blue), 1;
  ("4073",TrGreen), 2;
  ("4081a",OldGray), 2;
  ("4623",OldGray), 1;
  ("4590",OldGray), 1;
  ("4032",Black), 2;
  ("3020",OldGray), 1;
  ("4740",TrRed), 1;
  ("4735",Black), 1;
  ("4596",OldGray), 5;
  ]
in let astro_dasher_info =
 {name="Astro Dasher";
  theme="LEGO/SYSTEM/Space/Classic";
  year=1985;
  home="http://guide.lugnet.com/set/6805_1";
  pieces=size astro_dasher_parts;
  minifigs=1}
in (astro_dasher_info,astro_dasher_parts: model);;
let set_6805_1 = astro_dasher;;


let surface_hopper =
  let surface_hopper_parts = make
  [
  ("4598",OldGray), 1;
  ("4588",OldGray), 4;
  ("4588",TrRed), 2;
  ("4593",Black), 2;
  ("298",OldGray), 2;
  ("73590a",TrYellow), 2;
  ("3838",Red), 1;
  ("193b",Red), 1;
  ("3626ap01",Yellow), 1;
  ("970c00",Red), 1;
  ("973p90",Red), 1;
  ("4590",Black), 4;
  ("4740",TrGreen), 2;
  ("4735",Black), 1;
  ]
in let surface_hopper_info =
 {name="Surface Hopper";
  theme="LEGO/SYSTEM/Space/Classic";
  year=1985;
  home="http://guide.lugnet.com/set/6806_1";
  pieces=size surface_hopper_parts;
  minifigs=1}
in (surface_hopper_info,surface_hopper_parts: model);;
let set_6806_1 = surface_hopper;;


let unnamed_6807 =
  let unnamed_6807_parts = make
  [
  ("4598",OldGray), 1;
  ("4588",Black), 3;
  ("4733",Black), 1;
  ("4589",TrRed), 1;
  ("4593",Black), 3;
  ("298",Black), 1;
  ("298",OldGray), 2;
  ("3838",Yellow), 1;
  ("193b",Yellow), 1;
  ("3626ap01",Yellow), 1;
  ("970c00",Yellow), 1;
  ("4349",OldGray), 2;
  ("973p90",Yellow), 1;
  ("3839b",OldGray), 1;
  ("4229",Black), 2;
  ("3020",OldGray), 1;
  ("4740",TrRed), 2;
  ("4735",Black), 2;
  ]
in let unnamed_6807_info =
 {name="Unnamed #6807";
  theme="LEGO/SYSTEM/Space/Classic";
  year=1985;
  home="http://guide.lugnet.com/set/6807_1";
  pieces=size unnamed_6807_parts;
  minifigs=1}
in (unnamed_6807_info,unnamed_6807_parts: model);;
let set_6807_1 = unnamed_6807;;


let galaxy_trekkor =
  let galaxy_trekkor_parts = make
  [
  ("4598",White), 1;
  ("4070",White), 2;
  ("4589",Black), 2;
  ("4589",TrRed), 1;
  ("2429",White), 2;
  ("2430",White), 2;
  ("73590a",Black), 2;
  ("3838",Blue), 1;
  ("193b",Blue), 1;
  ("3626ap01",Yellow), 1;
  ("970c00",Blue), 1;
  ("4349",Black), 1;
  ("973p90",Blue), 1;
  ("3023",White), 1;
  ("3022",White), 1;
  ("4032",Black), 2;
  ("3020",White), 2;
  ("4740",TrRed), 2;
  ("3039p05",White), 1;
  ("4596",White), 1;
  ("3069bp25",White), 1;
  ("3936",White), 1;
  ("3935",White), 1;
  ]
in let galaxy_trekkor_info =
 {name="Galaxy Trekkor";
  theme="LEGO/SYSTEM/Space/Classic";
  year=1987;
  home="http://guide.lugnet.com/set/6808_1";
  pieces=size galaxy_trekkor_parts;
  minifigs=1}
in (galaxy_trekkor_info,galaxy_trekkor_parts: model);;
let set_6808_1 = galaxy_trekkor;;


let xt5_and_droid =
  let xt5_and_droid_parts = make
  [
  ("4598",OldGray), 1;
  ("3062b",Black), 2;
  ("4070",Black), 2;
  ("4589",TrRed), 2;
  ("2433",Black), 2;
  ("4593",Black), 2;
  ("298",Black), 2;
  ("4276",OldGray), 2;
  ("3838",Blue), 1;
  ("193b",Blue), 1;
  ("3962a",Black), 1;
  ("3626ap01",Yellow), 1;
  ("970c00",Blue), 1;
  ("973p90",Blue), 1;
  ("4073",OldGray), 2;
  ("4073",TrGreen), 2;
  ("3023",Black), 2;
  ("3023",OldGray), 1;
  ("4590",Black), 1;
  ("4590",OldGray), 1;
  ("3022",OldGray), 1;
  ("4032",Black), 1;
  ("3021",OldGray), 1;
  ("3039p05",OldGray), 1;
  ("4871",OldGray), 2;
  ("4735",Black), 2;
  ("3069bp25",OldGray), 1;
  ]
in let xt5_and_droid_info =
 {name="XT-5 And Droid";
  theme="LEGO/SYSTEM/Space/Classic";
  year=1988;
  home="http://guide.lugnet.com/set/6809_1";
  pieces=size xt5_and_droid_parts;
  minifigs=1}
in (xt5_and_droid_info,xt5_and_droid_parts: model);;
let set_6809_1 = xt5_and_droid;;


let starfire1 =
let starfire1_parts = make
  [
  ("4873",Black), 2;
  ("4598",White), 1;
  ("4595",Black), 2;
  ("4589",TrRed), 2;
  ("3942b",White), 1;
  ("4593",Black), 3;
  ("298",Black), 3;
  ("3838",Blue), 1;
  ("4360",Black), 1;
  ("193b",Blue), 1;
  ("3626ap01",Yellow), 1;
  ("970c00",Blue), 1;
  ("973p90",Blue), 1;
  ("3024",TrRed), 2;
  ("3023",White), 2;
  ("3839b",Black), 1;
  ("3666",Black), 2;
  ("3460",White), 1;
  ("3022",Black), 1;
  ("3022",White), 3;
  ("3795",White), 1;
  ("2342",White), 1;
  ("2336p36",White), 1;
  ("3936",White), 1;
  ("3935",White), 1;
  ]
in let starfire1_info =
 {name="Starfire I";
  theme="LEGO/SYSTEM/Space/Classic";
  year=1986;
  home="http://guide.lugnet.com/set/6820_1";
  pieces=size starfire1_parts;
  minifigs=1}
in (starfire1_info,starfire1_parts: model);;
let set_6820_1 = starfire1;;


let shovel_buggy =
  let shovel_buggy_parts = make
  [
  ("3957",OldGray), 1;
  ("792c01",OldGray), 1;
  ("3612",OldGray), 2;
  ("3613",OldGray), 1;
  ("3004",OldGray), 1;
  ("3963",OldGray), 2;
  ("3829",OldGray), 1;
  ("3838",White), 1;
  ("193a",White), 1;
  ("3962a",Black), 1;
  ("3626ap01",Yellow), 1;
  ("970c00",White), 1;
  ("973p90",White), 1;
  ("3024",Yellow), 2;
  ("4085a",OldGray), 1;
  ("122c01",OldGray), 2;
  ("3795",OldGray), 1;
  ("3747",OldGray), 1;
  ("4089",OldGray), 1;
  ("3039p34",OldGray), 1;
  ("3641",Black), 4;
  ]
in let shovel_buggy_info =
 {name="Shovel Buggy";
  theme="LEGO/SYSTEM/Space/Classic";
  year=1980;
  home="http://guide.lugnet.com/set/6821_1";
  pieces=size shovel_buggy_parts;
  minifigs=1}
in (shovel_buggy_info,shovel_buggy_parts: model);;
let set_6821_1 = shovel_buggy;;


let space_shuttle =
  let space_shuttle_parts = make
  [
  ("3957",OldGray), 1;
  ("792c02",OldGray), 1;
  ("3612",OldGray), 3;
  ("3963",Black), 2;
  ("3829",OldGray), 1;
  ("4221",OldGray), 2;
  ("4220",OldGray), 1;
  ("3838",Red), 1;
  ("193a",Red), 1;
  ("3962a",Black), 1;
  ("3626ap01",Yellow), 1;
  ("970c00",Red), 1;
  ("973p90",Red), 1;
  ("3024",OldGray), 2;
  ("3024",TrRed), 4;
  ("4081a",OldGray), 2;
  ("3794",Black), 2;
  ("3710",OldGray), 1;
  ("4229",OldGray), 4;
  ("3795",OldGray), 1;
  ]
in let space_shuttle_info =
 {name="Space Shuttle";
  theme="LEGO/SYSTEM/Space/Classic";
  year=1981;
  home="http://guide.lugnet.com/set/6822_1";
  pieces=size space_shuttle_parts;
  minifigs=1}
in (space_shuttle_info,space_shuttle_parts: model);;
let set_6822_1 = space_shuttle;;


let surface_transport =
  let surface_transport_parts = make
  [
  ("3957",Black), 1;
  ("3062b",TrRed), 1;
  ("4070",OldGray), 2;
  ("3004",OldGray), 1;
  ("3829",OldGray), 1;
  ("4346",OldGray), 1;
  ("4345a",OldGray), 1;
  ("3640",OldGray), 1;
  ("3639",OldGray), 1;
  ("3838",Yellow), 1;
  ("193a",Yellow), 1;
  ("3626ap01",Yellow), 1;
  ("970c00",Yellow), 1;
  ("4479",Black), 1;
  ("973p90",Yellow), 1;
  ("4085a",OldGray), 2;
  ("4175",OldGray), 2;
  ("122c01",OldGray), 2;
  ("3021",OldGray), 1;
  ("4288",Black), 4;
  ]
in let surface_transport_info =
 {name="Surface Transport";
  theme="LEGO/SYSTEM/Space/Classic";
  year=1983;
  home="http://guide.lugnet.com/set/6823_1";
  pieces=size surface_transport_parts;
  minifigs=1}
in (surface_transport_info,surface_transport_parts: model);;
let set_6823_1 = surface_transport;;


let space_dart1 =
  let space_dart1_parts = make
  [
  ("3957",OldGray), 2;
  ("3957",TrRed), 1;
  ("4598",OldGray), 1;
  ("4588",Black), 2;
  ("3062b",TrRed), 1;
  ("4070",OldGray), 2;
  ("3941",Black), 1;
  ("3941",OldGray), 1;
  ("4591",Black), 1;
  ("3829",OldGray), 1;
  ("3942a",OldGray), 1;
  ("3838",Blue), 1;
  ("193b",Blue), 1;
  ("3962a",Black), 1;
  ("3626ap01",Yellow), 1;
  ("970c00",Blue), 1;
  ("4349",Black), 4;
  ("973p90",Blue), 1;
  ("3024",TrGreen), 2;
  ("4073",TrRed), 4;
  ("4073",TrYellow), 2;
  ("4085a",OldGray), 2;
  ("4590",OldGray), 4;
  ("4032",Black), 2;
  ("3020",OldGray), 1;
  ("3795",OldGray), 1;
  ("4596",OldGray), 4;
  ("3749",OldGray), 1;
  ("3700",OldGray), 1;
  ]
in let space_dart1_info =
 {name="Space Dart-I";
  theme="LEGO/SYSTEM/Space/Classic";
  year=1984;
  home="http://guide.lugnet.com/set/6824_1";
  pieces=size space_dart1_parts;
  minifigs=1}
in (space_dart1_info,space_dart1_parts: model);;
let set_6824_1 = space_dart1;;


let cosmic_comet =
  let cosmic_comet_parts = make
  [
  ("3957",TrRed), 1;
  ("4598",Blue), 1;
  ("4595",OldGray), 2;
  ("3941",OldGray), 2;
  ("4589",TrRed), 4;
  ("4593",Black), 2;
  ("298",OldGray), 2;
  ("73590a",TrYellow), 2;
  ("3838",White), 1;
  ("4360",OldGray), 1;
  ("193b",White), 1;
  ("3626ap01",Yellow), 1;
  ("970c00",White), 1;
  ("973p90",White), 1;
  ("3024",TrRed), 2;
  ("4073",TrYellow), 2;
  ("4623",Blue), 1;
  ("4590",Blue), 2;
  ("4590",OldGray), 1;
  ("4032",OldGray), 1;
  ("3020",Blue), 1;
  ("4740",TrRed), 3;
  ("4735",OldGray), 2;
  ("4596",Blue), 3;
  ("3933",Blue), 1;
  ("3934",Blue), 1;
  ]
in let cosmic_comet_info =
 {name="Cosmic Comet";
  theme="LEGO/SYSTEM/Space/Classic";
  year=1985;
  home="http://guide.lugnet.com/set/6825_1";
  pieces=size cosmic_comet_parts;
  minifigs=1}
in (cosmic_comet_info,cosmic_comet_parts: model);;
let set_6825_1 = cosmic_comet;;


let crater_crawler =
  let crater_crawler_parts = make
  [
  ("3957",OldGray), 1;
  ("4598",OldGray), 1;
  ("4732",OldGray), 1;
  ("4588",TrRed), 1;
  ("4070",OldGray), 2;
  ("4595",Black), 1;
  ("4589",Black), 2;
  ("4593",Black), 2;
  ("298",Black), 2;
  ("3838",Yellow), 1;
  ("193b",Yellow), 1;
  ("3626ap01",Yellow), 1;
  ("970c00",Yellow), 1;
  ("973p90",Yellow), 1;
  ("3794",Black), 1;
  ("3794",OldGray), 2;
  ("4590",OldGray), 2;
  ("122c01",OldGray), 2;
  ("3021",Black), 1;
  ("4740",TrRed), 2;
  ("4596",OldGray), 1;
  ("3069b",Black), 1;
  ("4288",Black), 4;
  ]
in let crater_crawler_info =
 {name="Crater Crawler";
  theme="LEGO/SYSTEM/Space/Classic";
  year=1985;
  home="http://guide.lugnet.com/set/6826_1";
  pieces=size crater_crawler_parts;
  minifigs=1}
in (crater_crawler_info,crater_crawler_parts: model);;
let set_6826_1 = crater_crawler;;


let strata_scooter =
  let strata_scooter_parts = make
  [
  ("4598",White), 1;
  ("3001",White), 1;
  ("4589",TrRed), 1;
  ("2433",White), 2;
  ("4593",Black), 2;
  ("298",Black), 2;
  ("4276",White), 2;
  ("2429",White), 2;
  ("2430",White), 2;
  ("3838",Blue), 1;
  ("193b",Blue), 1;
  ("3626ap01",Yellow), 1;
  ("970c00",Blue), 1;
  ("973p90",Blue), 1;
  ("4073",TrRed), 2;
  ("3023",Black), 1;
  ("3023",White), 1;
  ("4032",Black), 1;
  ("122c02",Black), 2;
  ("3020",White), 1;
  ("4740",TrGreen), 2;
  ("3747",White), 1;
  ("2336p90",White), 1;
  ("4596",White), 2;
  ("2432",White), 1;
  ("4084",Black), 4;
  ]
in let strata_scooter_info =
 {name="Strata Scooter";
  theme="LEGO/SYSTEM/Space/Classic";
  year=1987;
  home="http://guide.lugnet.com/set/6827_1";
  pieces=size strata_scooter_parts;
  minifigs=1}
in (strata_scooter_info,strata_scooter_parts: model);;
let set_6827_1 = strata_scooter;;


let mineral_detector =
  let mineral_detector_parts = make
  [
  ("3957",OldGray), 1;
  ("4083",OldGray), 1;
  ("3963",OldGray), 2;
  ("3788",OldGray), 3;
  ("3829",OldGray), 1;
  ("3831",OldGray), 2;
  ("3830",OldGray), 2;
  ("3838",Red), 1;
  ("193a",Red), 1;
  ("3962a",Black), 1;
  ("3626ap01",Yellow), 1;
  ("970c00",Red), 1;
  ("973p90",Red), 1;
  ("3024",TrGreen), 2;
  ("3024",TrRed), 4;
  ("4085a",OldGray), 1;
  ("3666",OldGray), 2;
  ("122c01",OldGray), 3;
  ("3020",OldGray), 2;
  ("3034",OldGray), 1;
  ("3960",OldGray), 2;
  ("3040b",OldGray), 2;
  ("3039p34",OldGray), 1;
  ("3641",Black), 6;
  ]
in let mineral_detector_info =
 {name="Mineral Detector";
  theme="LEGO/SYSTEM/Space/Classic";
  year=1980;
  home="http://guide.lugnet.com/set/6841_1";
  pieces=size mineral_detector_parts;
  minifigs=1}
in (mineral_detector_info,mineral_detector_parts: model);;
let set_6841_1 = mineral_detector;;


let shuttle_craft =
  let shuttle_craft_parts = make
  [
  ("3957",Black), 3;
  ("3956",White), 1;
  ("3004",White), 3;
  ("3963",Black), 2;
  ("3829",White), 1;
  ("3943a",Black), 1;
  ("3838",Red), 1;
  ("193a",Red), 1;
  ("3626ap01",Yellow), 1;
  ("970c00",Red), 1;
  ("973p90",Red), 1;
  ("3024",OldGray), 2;
  ("3024",TrRed), 2;
  ("4081a",White), 2;
  ("3023",OldGray), 2;
  ("3023",White), 2;
  ("3839a",Black), 1;
  ("4175",Black), 2;
  ("3710",OldGray), 1;
  ("4229",OldGray), 4;
  ("3020",White), 1;
  ("3034",White), 1;
  ("3832",OldGray), 1;
  ("3298",White), 2;
  ("3298p90",White), 1;
  ("3040b",White), 2;
  ("3936",OldGray), 1;
  ("3935",OldGray), 1;
  ("3933",OldGray), 1;
  ("3934",OldGray), 1;
  ]
in let shuttle_craft_info =
 {name="Shuttle Craft";
  theme="LEGO/SYSTEM/Space/Classic";
  year=1981;
  home="http://guide.lugnet.com/set/6842_1";
  pieces=size shuttle_craft_parts;
  minifigs=1}
in (shuttle_craft_info,shuttle_craft_parts: model);;
let set_6842_1 = shuttle_craft;;


let seismologic_vehicle =
  let seismologic_vehicle_parts = make
  [
  ("3957",OldGray), 1;
  ("3062b",OldGray), 2;
  ("3062b",TrRed), 2;
  ("3004",Blue), 2;
  ("3829",OldGray), 1;
  ("3829",White), 1;
  ("4346",Blue), 2;
  ("4345a",Blue), 2;
   ("4275",Blue), 1;
   ("4276",Blue), 1;
(* ("x1125",Blue), 1; Unofficial part *)
(* ("x1126",Blue), 1; Unofficial part *)
  ("3640",OldGray), 1;
  ("3639",OldGray), 1;
  ("193a",White), 1;
  ("3626ap01",Yellow), 1;
  ("970c00",White), 1;
  ("4479",OldGray), 2;
  ("973p90",White), 1;
  ("3024",Blue), 1;
  ("4085a",OldGray), 2;
  ("3023",OldGray), 2;
  ("3794",Blue), 5;
  ("3839b",OldGray), 1;
  ("3710",Blue), 1;
  ("3022",Blue), 1;
  ("122c01",OldGray), 2;
  ("3795",Blue), 1;
  ("4285a",OldGray), 1;
  ("3747",Blue), 1;
  ("4476",Blue), 1;
  ("4288",Black), 4;
  ]
in let seismologic_vehicle_info =
 {name="Seismologic Vehicle";
  theme="LEGO/SYSTEM/Space/Classic";
  year=1983;
  home="http://guide.lugnet.com/set/6844_1";
  pieces=size seismologic_vehicle_parts;
  minifigs=1}
in (seismologic_vehicle_info,seismologic_vehicle_parts: model);;
let set_6844_1 = seismologic_vehicle;;


let cosmic_charger =
  let cosmic_charger_parts = make
  [
  ("3957",TrRed), 2;
  ("4598",Blue), 1;
  ("4588",Black), 2;
  ("4595",Black), 2;
  ("3963",Black), 2;
  ("4589",TrRed), 3;
  ("3937",Blue), 3;
  ("3938",Blue), 3;
  ("4593",OldGray), 2;
  ("298",Blue), 2;
  ("3838",White), 1;
  ("193b",White), 1;
  ("3626ap01",Yellow), 1;
  ("970c00",White), 1;
  ("973p90",White), 1;
  ("4073",TrRed), 2;
  ("3023",White), 4;
  ("3623",Blue), 2;
  ("4590",Blue), 1;
  ("3666",White), 2;
  ("3022",Blue), 1;
  ("3022",White), 1;
  ("3021",Blue), 1;
  ("3795",White), 2;
  ("4854",White), 1;
  ("2342",Blue), 1;
  ("4596",Blue), 1;
  ("2340",Blue), 2;
  ("3069bp06",Blue), 2;
  ("4855",White), 1;
  ("4447",White), 1;
  ("4475",Blue), 1;
  ]
in let cosmic_charger_info =
 {name="Cosmic Charger";
  theme="LEGO/SYSTEM/Space/Classic";
  year=1986;
  home="http://guide.lugnet.com/set/6845_1";
  pieces=size cosmic_charger_parts;
  minifigs=1}
in (cosmic_charger_info,cosmic_charger_parts: model);;
let set_6845_1 = cosmic_charger;;


let tri_star_voyager =
  let tri_star_voyager_parts = make
  [
  ("3957",Blue), 2;
  ("3957",TrRed), 2;
  ("4588",White), 3;
  ("3062b",Blue), 4;
  ("4070",Blue), 2;
  ("3829",Blue), 1;
  ("3937",White), 2;
  ("3938",White), 2;
  ("3838",Red), 1;
  ("193b",Red), 1;
  ("3959",Blue), 2;
  ("3626ap01",Yellow), 1;
  ("970c00",Red), 1;
  ("4349",White), 2;
  ("973p90",Red), 1;
  ("3024",TrRed), 2;
  ("4073",TrRed), 2;
  ("4081a",Blue), 2;
  ("4081a",White), 2;
  ("4085a",Blue), 2;
  ("4085a",White), 2;
  ("3023",Blue), 1;
  ("3794",Blue), 1;
  ("3839b",Blue), 1;
  ("3839b",White), 2;
  ("3710",Blue), 2;
  ("3710",White), 2;
  ("4590",Blue), 1;
  ("3666",Blue), 2;
  ("4032",White), 2;
  ("3020",Blue), 1;
  ("3020",White), 1;
  ("3795",Blue), 1;
  ("3034",Blue), 1;
  ("4286",White), 2;
  ("4596",Blue), 5;
  ("4596",White), 2;
  ("4162",Blue), 2;
  ("4475",Blue), 1;
  ]
in let tri_star_voyager_info =
 {name="Tri-Star Voyager";
  theme="LEGO/SYSTEM/Space/Classic";
  year=1984;
  home="http://guide.lugnet.com/set/6846_1";
  pieces=size tri_star_voyager_parts;
  minifigs=1}
in (tri_star_voyager_info,tri_star_voyager_parts: model);;
let set_6846_1 = tri_star_voyager;;


let space_dozer =
  let space_dozer_parts = make
  [
  ("4598",OldGray), 1;
  ("4588",TrRed), 2;
  ("4589",TrRed), 2;
  ("4315",OldGray), 1;
  ("73590a",Black), 2;
  ("3838",Yellow), 1;
  ("4360",Black), 1;
  ("193b",Yellow), 1;
  ("3962a",Black), 1;
  ("3626ap01",Yellow), 1;
  ("970c00",Yellow), 1;
  ("3841",Black), 1;
  ("973p90",Yellow), 1;
  ("3024",Yellow), 4;
  ("4081a",OldGray), 2;
  ("4085a",OldGray), 2;
  ("3794",OldGray), 1;
  ("3710",OldGray), 2;
  ("4590",OldGray), 1;
  ("3021",OldGray), 1;
  ("3032",OldGray), 1;
  ("4740",TrGreen), 1;
  ("3039p32",OldGray), 1;
  ("3039p34",OldGray), 1;
  ("4735",Black), 1;
  ("4596",OldGray), 1;
  ("3706",Black), 1;
  ("3749",OldGray), 4;
  ("3894",OldGray), 2;
  ("3713",OldGray), 2;
  ("4288",Black), 4;
  ("4474",OldGray), 1;
  ]
in let space_dozer_info =
 {name="Space Dozer";
  theme="LEGO/SYSTEM/Space/Classic";
  year=1985;
  home="http://guide.lugnet.com/set/6847_1";
  pieces=size space_dozer_parts;
  minifigs=1}
in (space_dozer_info,space_dozer_parts: model);;
let set_6847_1 = space_dozer;;


let interplanetary_shuttle =
  let interplanetary_shuttle_parts = make
  [
  ("3957",TrRed), 1;
  ("4598",OldGray), 1;
  ("4588",Black), 2;
  ("3829",OldGray), 1;
  ("4589",TrRed), 1;
  ("4346",OldGray), 2;
  ("4345a",OldGray), 2;
  ("3838",Red), 1;
  ("193b",Red), 1;
  ("3626ap01",Yellow), 1;
  ("970c00",Red), 1;
  ("4349",OldGray), 2;
  ("4479",Black), 1;
  ("4522",Black), 1;
  ("973p90",Red), 1;
  ("4073",TrGreen), 2;
  ("4073",TrRed), 2;
  ("4085a",OldGray), 2;
  ("3023",OldGray), 1;
  ("4175",Black), 2;
  ("4590",Black), 4;
  ("3666",OldGray), 1;
  ("3022",OldGray), 2;
  ("4032",Black), 2;
  ("3021",OldGray), 1;
  ("3020",OldGray), 1;
  ("3034",OldGray), 1;
  ("3832",OldGray), 1;
  ("4740",TrGreen), 2;
  ("4285a",OldGray), 1;
  ("3660",OldGray), 1;
  ("3039p32",OldGray), 2;
  ("4460",OldGray), 2;
  ("4596",OldGray), 3;
  ("3933",OldGray), 1;
  ("3934",OldGray), 1;
  ]
in let interplanetary_shuttle_info =
 {name="Interplanetary Shuttle";
  theme="LEGO/SYSTEM/Space/Classic";
  year=1985;
  home="http://guide.lugnet.com/set/6848_2";
  pieces=size interplanetary_shuttle_parts;
  minifigs=1}
in (interplanetary_shuttle_info,interplanetary_shuttle_parts: model);;
let set_6848_2 = interplanetary_shuttle;;


let satellite_patroller =
  let satellite_patroller_parts = make
  [
  ("3957",TrRed), 2;
  ("4598",White), 1;
  ("4070",Black), 2;
  ("3001",White), 1;
  ("3829",White), 1;
  ("4589",TrRed), 1;
  ("4593",Black), 1;
  ("298",Black), 1;
  ("2429",Black), 2;
  ("2430",Black), 2;
  ("3640",Black), 1;
  ("3639",Black), 1;
  ("3838",Yellow), 1;
  ("193b",Yellow), 1;
  ("3626ap01",Yellow), 1;
  ("970c00",Yellow), 1;
  ("973p90",Yellow), 1;
  ("4865",White), 1;
  ("4073",TrGreen), 2;
  ("4073",TrRed), 2;
  ("3794",Black), 2;
  ("4590",Black), 1;
  ("3022",White), 1;
  ("122c02",Black), 2;
  ("3021",Black), 1;
  ("2419",White), 2;
  ("4740",White), 2;
  ("4740",TrGreen), 2;
  ("3039p32",White), 1;
  ("3039p34",White), 1;
  ("2336p90",White), 1;
  ("4596",White), 2;
  ("4746",White), 1;
  ("3068bp08",White), 1;
  ("4084",Black), 4;
  ]
in let satellite_patroller_info =
 {name="Satellite Patroller";
  theme="LEGO/SYSTEM/Space/Classic";
  year=1987;
  home="http://guide.lugnet.com/set/6849_1";
  pieces=size satellite_patroller_parts;
  minifigs=1}
in (satellite_patroller_info,satellite_patroller_parts: model);;
let set_6849_1 = satellite_patroller;;


let x1_patrol_craft =
  let x1_patrol_craft_parts = make
  [
  ("3957",OldGray), 2;
  ("3956",OldGray), 4;
  ("3062b",TrRed), 2;
  ("3004",OldGray), 2;
  ("3065",TrGreen), 1;
  ("3963",OldGray), 2;
  ("3941",OldGray), 8;
  ("3829",OldGray), 1;
  ("3942a",OldGray), 2;
  ("3943a",OldGray), 2;
  ("3838",Red), 1;
  ("193a",Red), 1;
  ("3959",OldGray), 2;
  ("3626ap01",Yellow), 1;
  ("970c00",Red), 1;
  ("973p90",Red), 1;
  ("3024",OldGray), 2;
  ("3024",TrRed), 2;
  ("3839a",OldGray), 1;
  ("3021",OldGray), 1;
  ("3034",OldGray), 2;
  ("3832",OldGray), 1;
  ("3032",OldGray), 1;
  ("3036",OldGray), 1;
  ("3298p90",OldGray), 1;
  ("3039",OldGray), 1;
  ("3940",OldGray), 4;
  ("3479",OldGray), 1;
  ("3933",OldGray), 2;
  ("3934",OldGray), 2;
  ]
in let x1_patrol_craft_info =
 {name="X-1 Patrol Craft";
  theme="LEGO/SYSTEM/Space/Classic";
  year=1980;
  home="http://guide.lugnet.com/set/6861_1";
  pieces=size x1_patrol_craft_parts;
  minifigs=1}
in (x1_patrol_craft_info,x1_patrol_craft_parts: model);;
let set_6861_1 = x1_patrol_craft;;


let space_probe_launcher =
  let space_probe_launcher_parts = make
  [
  ("3957",Black), 2;
  ("3957",OldGray), 2;
  ("3956",OldGray), 1;
  ("3622",White), 2;
  ("3963",Black), 2;
  ("3963",OldGray), 2;
  ("3829",OldGray), 1;
  ("3829",White), 1;
  ("3640",OldGray), 1;
  ("3639",OldGray), 1;
  ("3324c01",OldGray), 1;
  ("3838",Red), 1;
  ("193a",Red), 1;
  ("3626ap01",Yellow), 1;
  ("970c00",Red), 1;
  ("973p90",Red), 1;
  ("3024",TrGreen), 2;
  ("3024",TrRed), 2;
  ("4081a",OldGray), 2;
  ("4081a",White), 4;
  ("3023",OldGray), 2;
  ("4175",OldGray), 1;
  ("122c01",OldGray), 3;
  ("3020",OldGray), 3;
  ("3034",OldGray), 1;
  ("3034",White), 1;
  ("3031",OldGray), 1;
  ("3298p90",White), 1;
  ("3040b",White), 2;
  ("3665",White), 2;
  ("3068b",OldGray), 4;
  ("4084",Black), 6;
  ("3933",White), 1;
  ("3934",White), 1;
  ]
in let space_probe_launcher_info =
 {name="Space Probe Launcher";
  theme="LEGO/SYSTEM/Space/Classic";
  year=1981;
  home="http://guide.lugnet.com/set/6870_1";
  pieces=size space_probe_launcher_parts;
  minifigs=1}
in (space_probe_launcher_info,space_probe_launcher_parts: model);;
let set_6870_1 = space_probe_launcher;;


let star_patrol_launcher =
  let star_patrol_launcher_parts = make
  [
  ("4598",Blue), 1;
  ("4588",OldGray), 2;
  ("3004",OldGray), 1;
  ("3941",OldGray), 2;
  ("3829",Blue), 1;
  ("3829",OldGray), 1;
  ("3937",OldGray), 1;
  ("3938",OldGray), 1;
  ("3838",Red), 1;
  ("3838",White), 1;
  ("4360",Black), 1;
  ("193b",Red), 1;
  ("193b",White), 1;
  ("3626ap01",Yellow), 2;
  ("970c00",Red), 1;
  ("970c00",White), 1;
  ("4349",Black), 2;
  ("4349",OldGray), 2;
  ("973p90",Red), 1;
  ("973p90",White), 1;
  ("4073",TrGreen), 2;
  ("4073",TrRed), 2;
  ("4073",TrYellow), 4;
  ("3023",OldGray), 1;
  ("3794",Blue), 1;
  ("3794",OldGray), 1;
  ("3710",Blue), 1;
  ("4590",OldGray), 2;
  ("3022",OldGray), 3;
  ("122c01",OldGray), 3;
  ("3020",OldGray), 1;
  ("3795",OldGray), 1;
  ("3034",OldGray), 1;
  ("3747",Blue), 1;
  ("3665",Blue), 2;
  ("3039p23",OldGray), 1;
  ("4596",Blue), 1;
  ("4596",OldGray), 1;
  ("3749",Black), 2;
  ("3701",Blue), 1;
  ("3701",OldGray), 1;
  ("3069b",OldGray), 1;
  ("3068b",OldGray), 2;
  ("3680c01",OldGray), 1;
  ("4288",Black), 6;
  ("3936",Blue), 1;
  ("3935",Blue), 1;
  ]
in let star_patrol_launcher_info =
 {name="Star Patrol Launcher";
  theme="LEGO/SYSTEM/Space/Classic";
  year=1984;
  home="http://guide.lugnet.com/set/6871_1";
  pieces=size star_patrol_launcher_parts;
  minifigs=2}
in (star_patrol_launcher_info,star_patrol_launcher_parts: model);;
let set_6871_1 = star_patrol_launcher;;


let lunar_patrol_craft =
  let lunar_patrol_craft_parts = make
  [
  ("3957",TrRed), 2;
  ("3957",TrYellow), 2;
  ("4732",OldGray), 1;
  ("4070",OldGray), 2;
  ("4733",OldGray), 1;
  ("3004",OldGray), 2;
  ("3010",OldGray), 2;
  ("3963",OldGray), 2;
  ("4591",Black), 1;
  ("4589",TrYellow), 4;
  ("3189",Blue), 1;
  ("3188",Blue), 1;
  ("3937",OldGray), 1;
  ("3938",Black), 1;
  ("4593",Black), 2;
  ("298",Black), 2;
  ("4276a",Blue), 2;
  ("4275a",Blue), 2;
  ("4315",OldGray), 1;
  ("73590a",Black), 2;
  ("3838",Yellow), 1;
  ("193b",Yellow), 1;
  ("3626ap01",Yellow), 1;
  ("970c00",Yellow), 1;
  ("973p90",Yellow), 1;
  ("3024",OldGray), 2;
  ("4081a",Blue), 4;
  ("4085a",OldGray), 2;
  ("3023",Blue), 1;
  ("3023",OldGray), 3;
  ("3794",Black), 1;
  ("4590",OldGray), 1;
  ("3666",Blue), 2;
  ("3021",Blue), 1;
  ("3020",Blue), 3;
  ("3795",OldGray), 1;
  ("4740",TrRed), 2;
  ("3747",OldGray), 3;
  ("4735",Black), 4;
  ("4746",OldGray), 1;
  ("3069bp25",Blue), 1;
  ("3069bp06",Blue), 2;
  ("3068b",OldGray), 1;
  ("4474",TrYellow), 1;
  ("3933",Blue), 1;
  ("3934",Blue), 1;
  ("4475",Blue), 1;
  ]
in let lunar_patrol_craft_info =
 {name="Lunar Patrol Craft";
  theme="LEGO/SYSTEM/Space/Classic";
  year=1986;
  home="http://guide.lugnet.com/set/6872_1";
  pieces=size lunar_patrol_craft_parts;
  minifigs=1}
in (lunar_patrol_craft_info,lunar_patrol_craft_parts: model);;
let set_6872_1 = lunar_patrol_craft;;


let moonrover =
  let moonrover_parts = make
  [
  ("4598",Blue), 1;
  ("4598",White), 1;
  ("4588",Black), 1;
  ("4595",White), 2;
  ("3003",Blue), 2;
  ("3829",Blue), 1;
  ("4589",Blue), 2;
  ("4589",TrRed), 2;
  ("3185",Blue), 2;
  ("4593",Black), 2;
  ("298",Black), 2;
  ("3640",Blue), 1;
  ("3639",Blue), 1;
  ("73590a",White), 1;
  ("3838",Red), 1;
  ("3838",Yellow), 1;
  ("193b",Red), 1;
  ("193b",Yellow), 1;
  ("3959",White), 2;
  ("3626ap01",Yellow), 2;
  ("970c00",Red), 1;
  ("970c00",Yellow), 1;
  ("4349",White), 2;
  ("973p90",Red), 1;
  ("973p90",Yellow), 1;
  ("3023",White), 1;
  ("3839b",White), 3;
  ("4590",White), 4;
  ("3022",Blue), 1;
  ("4032",Black), 2;
  ("122c01",OldGray), 2;
  ("3020",Blue), 1;
  ("3795",White), 1;
  ("4740",TrRed), 2;
  ("4740",TrYellow), 2;
  ("3298",Blue), 4;
  ("3039",Blue), 2;
  ("2342",White), 1;
  ("2336p35",Blue), 1;
  ("3940",White), 1;
  ("4288",Black), 4;
  ("4859",White), 1;
  ]
in let moonrover_info =
 {name="Moonrover";
  theme="LEGO/SYSTEM/Space/Classic";
  year=1986;
  home="http://guide.lugnet.com/set/6874_1";
  pieces=size moonrover_parts;
  minifigs=2}
in (moonrover_info,moonrover_parts: model);;
let set_6874_1 = moonrover;;


let surface_explorer =
  let surface_explorer_parts = make
  [
  ("3957",Black), 1;
  ("3957",OldGray), 2;
  ("792c02",OldGray), 2;
  ("3612",OldGray), 8;
  ("3613",OldGray), 1;
  ("3956",OldGray), 1;
  ("3062b",TrRed), 2;
  ("3829",OldGray), 2;
  ("4221",OldGray), 2;
  ("4220",OldGray), 1;
  ("3838",Yellow), 1;
  ("4360",Black), 1;
  ("193a",Yellow), 1;
  ("3959",Black), 1;
  ("3626ap01",Yellow), 1;
  ("970c00",Yellow), 1;
  ("4006",Black), 1;
  ("973p90",Yellow), 1;
  ("3024",Yellow), 2;
  ("4081a",OldGray), 4;
  ("3839a",Black), 2;
  ("3839a",OldGray), 2;
  ("4175",OldGray), 4;
  ("3020",OldGray), 2;
  ("3832",OldGray), 2;
  ("3032",OldGray), 1;
  ("4285a",OldGray), 1;
  ("4089",OldGray), 1;
  ("3298p90",OldGray), 1;
  ("3039",OldGray), 1;
  ("3039p34",OldGray), 1;
  ("3039p23",OldGray), 1;
  ("3940",Black), 3;
  ("3707",Black), 3;
  ("3702",OldGray), 2;
  ("3713",OldGray), 6;
  ("3680c01",OldGray), 1;
  ("4288",Black), 12;
  ]
in let surface_explorer_info =
 {name="Surface Explorer";
  theme="LEGO/SYSTEM/Space/Classic";
  year=1982;
  home="http://guide.lugnet.com/set/6880_1";
  pieces=size surface_explorer_parts;
  minifigs=1}
in (surface_explorer_info,surface_explorer_parts: model);;
let set_6880_1 = surface_explorer;;


let lunar_rocket_launcher =
  let lunar_rocket_launcher_parts = make
  [
  ("4588",OldGray), 1;
  ("3062b",Black), 4;
  ("4070",Blue), 2;
  ("3004p06",Blue), 2;
  ("3010",Blue), 2;
  ("3941",Black), 4;
  ("3941",White), 3;
  ("4591",White), 2;
  ("3829",Blue), 1;
  ("3942a",White), 1;
  ("4276a",Black), 2;
  ("4275a",Black), 2;
  ("3640",Blue), 1;
  ("3639",Blue), 1;
  ("3324c01",Blue), 1;
  ("x467",Black), 2;
  ("3838",White), 1;
  ("4360",Black), 1;
  ("193b",White), 1;
  ("3962a",Black), 1;
  ("3876",TrRed), 1;
  ("3959",OldGray), 3;
  ("3626ap01",Yellow), 1;
  ("970c00",White), 1;
  ("973p90",White), 1;
  ("4073",TrRed), 2;
  ("4073",TrYellow), 4;
  ("4081a",Blue), 4;
  ("4085a",Blue), 4;
  ("3023",Black), 1;
  ("3023",Blue), 3;
  ("3839b",OldGray), 1;
  ("3710",Blue), 2;
  ("4590",Blue), 3;
  ("3666",Blue), 1;
  ("122c01",OldGray), 4;
  ("3020",Blue), 2;
  ("3795",Blue), 2;
  ("3034",Blue), 1;
  ("4286",Blue), 2;
  ("4287",Blue), 4;
  ("3039p34",Blue), 1;
  ("4596",White), 2;
  ("3737",Black), 1;
  ("3070b",TrRed), 2;
  ("4162",Blue), 2;
  ("4288",Black), 8;
  ]
in let lunar_rocket_launcher_info =
 {name="Lunar Rocket Launcher";
  theme="LEGO/SYSTEM/Space/Classic";
  year=1984;
  home="http://guide.lugnet.com/set/6881_1";
  pieces=size lunar_rocket_launcher_parts;
  minifigs=1}
in (lunar_rocket_launcher_info,lunar_rocket_launcher_parts: model);;
let set_6881_1 = lunar_rocket_launcher;;


let walking_astro_grappler =
  let walking_astro_grappler_parts = make
  [
  ("792c02",OldGray), 1;
  ("3612",OldGray), 7;
  ("4598",Blue), 1;
  ("4732",Blue), 2;
  ("3062b",Blue), 4;
  ("3622",Blue), 2;
  ("3829",Blue), 1;
  ("4589",TrRed), 4;
  ("4346",Blue), 2;
  ("4345a",Blue), 2;
  ("4221",Black), 2;
  ("4220",Black), 1;
  ("4593",Black), 2;
  ("298",Black), 2;
  ("4625",Blue), 2;
  ("73590a",TrYellow), 2;
  ("3838",Black), 1;
  ("193b",Black), 1;
  ("3626ap01",Yellow), 1;
  ("970c00",Black), 1;
  ("973p90",Black), 1;
  ("3024",Blue), 2;
  ("3710",Blue), 1;
  ("4590",Blue), 2;
  ("3460",Blue), 1;
  ("3022",Blue), 4;
  ("3020",Blue), 1;
  ("3034",Blue), 5;
  ("3034",OldGray), 3;
  ("4740",OldGray), 2;
  ("3040b",Blue), 2;
  ("4735",OldGray), 2;
  ("4476",OldGray), 4;
  ("3894",Blue), 2;
  ("4274",OldGray), 2;
  ("3069b",Blue), 5;
  ("4162",OldGray), 2;
  ("3680c01",Blue), 10;
  ("4474",Blue), 1;
  ("4474",TrYellow), 1;
  ]
in let walking_astro_grappler_info =
 {name="Walking Astro Grappler";
  theme="LEGO/SYSTEM/Space/Classic";
  year=1985;
  home="http://guide.lugnet.com/set/6882_1";
  pieces=size walking_astro_grappler_parts;
  minifigs=1}
in (walking_astro_grappler_info,walking_astro_grappler_parts: model);;
let set_6882_1 = walking_astro_grappler;;


let terrestrial_rover =
  let terrestrial_rover_parts = make
  [
  ("3957",TrRed), 4;
  ("4588",TrRed), 1;
  ("3062b",Black), 2;
  ("3062b",Blue), 1;
  ("3062b",White), 1;
  ("3004",Black), 2;
  ("3004",Blue), 2;
  ("3004",White), 1;
  ("4595",Black), 4;
  ("4595",Blue), 1;
  ("3963",White), 2;
  ("3941",White), 1;
  ("2433",Black), 2;
  ("4593",Black), 2;
  ("298",Black), 2;
  ("4276",Blue), 2;
  ("2429",Blue), 4;
  ("2430",Blue), 4;
  ("3640",Blue), 1;
  ("3639",Blue), 1;
  ("3838",White), 1;
  ("193b",White), 1;
  ("3962a",Black), 1;
  ("3626ap01",Yellow), 1;
  ("970c00",White), 1;
  ("4006",Black), 1;
  ("973p90",White), 1;
  ("3024",TrRed), 2;
  ("3024",TrYellow), 4;
  ("4085b",Black), 2;
  ("3023",Black), 2;
  ("3023",Blue), 5;
  ("3023",White), 2;
  ("3794",White), 5;
  ("3839b",White), 2;
  ("3710",Blue), 5;
  ("4590",Blue), 3;
  ("2420",Blue), 4;
  ("122c02",Black), 4;
  ("3021",Blue), 1;
  ("3795",Blue), 1;
  ("4282",Blue), 1;
  ("2419",Blue), 2;
  ("4740",White), 4;
  ("4740",TrRed), 2;
  ("3960",White), 2;
  ("3040b",Blue), 2;
  ("4476",Blue), 2;
  ("2340p90",Blue), 1;
  ("3068b",Black), 1;
  ("4084",Black), 8;
  ("2399",Blue), 1;
  ]
in let terrestrial_rover_info =
 {name="Terrestrial Rover";
  theme="LEGO/SYSTEM/Space/Classic";
  year=1987;
  home="http://guide.lugnet.com/set/6883_1";
  pieces=size terrestrial_rover_parts;
  minifigs=1}
in (terrestrial_rover_info,terrestrial_rover_parts: model);;
let set_6883_1 = terrestrial_rover;;


let cosmic_cruiser =
  let cosmic_cruiser_parts = make
  [
  ("3957",Black), 2;
  ("3957",OldGray), 2;
  ("3956",Black), 1;
  ("3062b",TrGreen), 2;
  ("3004",Blue), 2;
  ("3004",White), 1;
  ("3004p06",OldGray), 1;
  ("3065",TrBlue), 2;
  ("3622",White), 2;
  ("3010p04",Blue), 2;
  ("3963",OldGray), 2;
  ("3941",Black), 2;
  ("4212",White), 1;
  ("3829",White), 1;
  ("3943",Black), 1;
  ("3937",Blue), 1;
  ("3938",OldGray), 1;
  ("4213",TrBlue), 1;
  ("4315",Blue), 1;
  ("3838",Red), 1;
  ("193a",Red), 1;
  ("3626ap01",Yellow), 1;
  ("970c00",Red), 1;
  ("973p90",Red), 1;
  ("3024",White), 4;
  ("3024",TrRed), 4;
  ("4073",TrRed), 2;
  ("4081a",White), 4;
  ("4085a",OldGray), 2;
  ("3023",Blue), 4;
  ("3023",OldGray), 1;
  ("3023",White), 7;
  ("3839a",Black), 1;
  ("3839a",White), 1;
  ("4175",OldGray), 2;
  ("3623",White), 4;
  ("3710",Blue), 1;
  ("3710",White), 4;
  ("3666",Blue), 1;
  ("3460",Blue), 1;
  ("3460",White), 2;
  ("3022",White), 4;
  ("4229",Black), 3;
  ("3021",OldGray), 1;
  ("3021",White), 2;
  ("3795",Blue), 1;
  ("3795",White), 1;
  ("3832",White), 1;
  ("4286",Blue), 4;
  ("4287",Blue), 2;
  ("4287",White), 2;
  ("3298",White), 1;
  ("3298p90",White), 1;
  ("3939",TrBlue), 1;
  ("3939p90",Blue), 1;
  ("3039",White), 2;
  ("3940",Black), 2;
  ("3069b",White), 2;
  ("3933",White), 3;
  ("3934",White), 3;
  ]
in let cosmic_cruiser_info =
 {name="Cosmic Cruiser";
  theme="LEGO/SYSTEM/Space/Classic";
  year=1982;
  home="http://guide.lugnet.com/set/6890_1";
  pieces=size cosmic_cruiser_parts;
  minifigs=1}
in (cosmic_cruiser_info,cosmic_cruiser_parts: model);;
let set_6890_1 = cosmic_cruiser;;


let gamma_v_laser_craft =
  let gamma_v_laser_craft_parts = make
  [
  ("3957",TrYellow), 1;
  ("4732",Black), 2;
  ("4588",Black), 1;
  ("4070",OldGray), 4;
  ("4733",Blue), 1;
  ("3004",OldGray), 2;
  ("3004p01",OldGray), 2;
  ("4595",Black), 1;
  ("4595",Blue), 1;
  ("3622",OldGray), 2;
  ("3010",OldGray), 1;
  ("3963",Black), 2;
  ("3003",OldGray), 1;
  ("4591",OldGray), 1;
  ("3002",OldGray), 1;
  ("3001",OldGray), 1;
  ("3829",OldGray), 1;
  ("4589",Black), 1;
  ("4589",TrRed), 3;
  ("3189",Black), 1;
  ("3188",Black), 1;
  ("4213",Black), 2;
  ("4593",Black), 2;
  ("298",Black), 2;
  ("4315",OldGray), 3;
  ("73590a",Black), 2;
  ("3838",Black), 1;
  ("193b",Black), 1;
  ("3959",Black), 1;
  ("3626ap01",Yellow), 1;
  ("970c00",Black), 1;
  ("973p90",Black), 1;
  ("3024",OldGray), 2;
  ("3024",TrGreen), 2;
  ("3024",TrRed), 2;
  ("4073",TrRed), 2;
  ("4085a",OldGray), 2;
  ("3023",OldGray), 14;
  ("3794",OldGray), 2;
  ("3623",Black), 2;
  ("3710",OldGray), 1;
  ("4590",OldGray), 1;
  ("3666",OldGray), 1;
  ("3022",OldGray), 3;
  ("4229",Black), 2;
  ("4229",OldGray), 2;
  ("3021",OldGray), 4;
  ("3020",Black), 6;
  ("3020",OldGray), 4;
  ("3795",OldGray), 1;
  ("3832",OldGray), 1;
  ("3031",OldGray), 1;
  ("4740",Blue), 1;
  ("4740",TrRed), 1;
  ("3747",OldGray), 5;
  ("3040b",OldGray), 2;
  ("3039p32",OldGray), 1;
  ("4735",Black), 1;
  ("4735",Blue), 2;
  ("4737",Black), 2;
  ("4596",OldGray), 1;
  ("3479",OldGray), 2;
  ("4746",Black), 1;
  ("3700",OldGray), 2;
  ("3673",OldGray), 1;
  ("3070b",TrRed), 2;
  ("3069bp06",OldGray), 2;
  ("3068b",OldGray), 1;
  ("3068bp08",OldGray), 1;
  ("4474",TrGreen), 1;
  ("3936",OldGray), 1;
  ("3935",OldGray), 1;
  ("4475",OldGray), 3;
  ]
in let gamma_v_laser_craft_info =
 {name="Gamma-V Laser Craft";
  theme="LEGO/SYSTEM/Space/Classic";
  year=1985;
  home="http://guide.lugnet.com/set/6891_1";
  pieces=size gamma_v_laser_craft_parts;
  minifigs=1}
in (gamma_v_laser_craft_info,gamma_v_laser_craft_parts: model);;
let set_6891_1 = gamma_v_laser_craft;;


let modular_space_transport =
  let modular_space_transport_parts = make
  [
  ("3957",TrRed), 4;
  ("4873",White), 1;
  ("3956",White), 1;
  ("4732",Blue), 1;
  ("4070",Black), 2;
  ("3004",Blue), 5;
  ("3010",Blue), 2;
  ("3009",Blue), 4;
  ("3008",Blue), 1;
  ("3003",White), 1;
  ("3137c01",Black), 3;
  ("3006",Blue), 1;
  ("4589",TrRed), 2;
  ("3633",Blue), 2;
  ("3937",Blue), 1;
  ("3938",Blue), 1;
  ("4315",Blue), 1;
  ("3838",Yellow), 2;
  ("193b",Yellow), 2;
  ("3626ap01",Yellow), 2;
  ("970c00",Yellow), 2;
  ("973p90",Yellow), 2;
  ("3024",TrRed), 2;
  ("3023",Blue), 6;
  ("3794",Blue), 2;
  ("3710",White), 6;
  ("4590",Blue), 1;
  ("3666",Blue), 2;
  ("3022",Blue), 5;
  ("4032",Black), 1;
  ("3021",Blue), 2;
  ("3021",White), 1;
  ("3020",Black), 1;
  ("3020",Blue), 4;
  ("3795",Blue), 2;
  ("3034",Blue), 1;
  ("3832",Blue), 2;
  ("3035",White), 1;
  ("4740",TrRed), 2;
  ("4286",Blue), 4;
  ("4286",White), 2;
  ("4287",Blue), 2;
  ("3747",Blue), 2;
  ("3040b",Blue), 16;
  ("3665",Blue), 6;
  ("3660",Blue), 4;
  ("3037",Blue), 1;
  ("2342",Black), 1;
  ("4741",Blue), 2;
  ("3700",Blue), 1;
  ("3701",Blue), 1;
  ("3703",Blue), 2;
  ("3673",OldGray), 1;
  ("3069bp25",Blue), 1;
  ("3069b",White), 4;
  ("3069bp06",White), 2;
  ("4162",White), 2;
  ("3068bp08",White), 1;
  ("3641",Black), 6;
  ("4474",TrYellow), 1;
  ("3936",White), 1;
  ("3935",White), 1;
  ("3933",White), 1;
  ("3934",White), 1;
  ]
in let modular_space_transport_info =
 {name="Modular Space Transport";
  theme="LEGO/SYSTEM/Space/Classic";
  year=1986;
  home="http://guide.lugnet.com/set/6892_1";
  pieces=size modular_space_transport_parts;
  minifigs=2}
in (modular_space_transport_info,modular_space_transport_parts: model);;
let set_6892_1 = modular_space_transport;;


let mobile_lab =
  let mobile_lab_parts = make
  [
  ("3957",OldGray), 1;
  ("792c02",OldGray), 1;
  ("3612",OldGray), 5;
  ("3613",OldGray), 1;
  ("3005",OldGray), 2;
  ("3062b",OldGray), 1;
  ("3062b",TrGreen), 2;
  ("3062b",TrRed), 2;
  ("4070",OldGray), 2;
  ("3004",OldGray), 5;
  ("3004p90",OldGray), 2;
  ("3065",TrGreen), 4;
  ("3010",OldGray), 3;
  ("3066",TrGreen), 2;
  ("3829",OldGray), 1;
  ("3831",OldGray), 4;
  ("3830",OldGray), 4;
  ("3838",Red), 1;
  ("3838",White), 1;
  ("193a",Red), 1;
  ("193a",White), 1;
  ("3962a",Black), 1;
  ("3959",OldGray), 3;
  ("970c00",Red), 1;
  ("970c00",White), 1;
  ("4006",Black), 1;
  ("973p90",Red), 1;
  ("973p90",White), 1;
  ("3024",TrGreen), 2;
  ("3024",TrRed), 6;
  ("3614",OldGray), 1;
  ("4085a",OldGray), 2;
  ("3023",OldGray), 5;
  ("3794",OldGray), 2;
  ("3839a",OldGray), 2;
  ("3710",OldGray), 6;
  ("3666",OldGray), 4;
  ("3022",OldGray), 3;
  ("122c01",OldGray), 6;
  ("3021",OldGray), 1;
  ("3034",OldGray), 2;
  ("3036",OldGray), 1;
  ("3028",OldGray), 1;
  ("3960",OldGray), 1;
  ("4089",OldGray), 1;
  ("3298p90",OldGray), 2;
  ("3939",TrGreen), 1;
  ("3940",OldGray), 6;
  ("3070b",OldGray), 4;
  ("3069b",OldGray), 11;
  ("3641",Black), 12;
  ]
in let mobile_lab_info =
 {name="Mobile Lab";
  theme="LEGO/SYSTEM/Space/Classic";
  year=1980;
  home="http://guide.lugnet.com/set/6901_1";
  pieces=size mobile_lab_parts;
  minifigs=2}
in (mobile_lab_info,mobile_lab_parts: model);;
let set_6901_1 = mobile_lab;;


let mobile_recovery_vehicle =
  let mobile_recovery_vehicle_parts = make
  [
  ("3957",TrRed), 2;
  ("4598",OldGray), 2;
  ("4732",Blue), 1;
  ("3005",Blue), 4;
  ("3062b",Yellow), 2;
  ("3062b",TrRed), 2;
  ("4070",Blue), 2;
  ("3004",Blue), 1;
  ("3010",Blue), 1;
  ("3963",Black), 2;
  ("3003",Blue), 1;
  ("3941",Black), 2;
  ("3941",Blue), 1;
  ("3941",OldGray), 2;
  ("4730",Blue), 1;
  ("4730",OldGray), 1;
  ("3002",Blue), 1;
  ("3007",Blue), 1;
  ("4589",TrRed), 2;
  ("3633",Blue), 2;
  ("4448",TrYellow), 2;
  ("4315",Blue), 1;
  ("3838",Yellow), 2;
  ("2343",OldGray), 2;
  ("193b",Yellow), 2;
  ("3962a",Black), 1;
  ("3626ap01",Yellow), 2;
  ("970c00",Yellow), 2;
  ("4006",Black), 1;
  ("973p90",Yellow), 2;
  ("3024",Blue), 4;
  ("4081a",OldGray), 2;
  ("4085a",Blue), 2;
  ("3023",Blue), 3;
  ("4175",OldGray), 1;
  ("3710",Blue), 5;
  ("4590",Blue), 1;
  ("3666",Blue), 1;
  ("3022",Blue), 2;
  ("4032",Black), 7;
  ("3021",Blue), 2;
  ("3795",Blue), 1;
  ("3034",Blue), 2;
  ("3035",Blue), 1;
  ("4740",TrRed), 2;
  ("4286",Blue), 2;
  ("4287",Blue), 4;
  ("3747",Blue), 2;
  ("3040b",Blue), 8;
  ("3665",Blue), 2;
  ("3039",Blue), 1;
  ("3660",Blue), 2;
  ("3037",Blue), 1;
  ("2342",OldGray), 1;
  ("4741",Blue), 2;
  ("4596",OldGray), 2;
  ("2340",Blue), 2;
  ("3749",OldGray), 4;
  ("3701",Blue), 1;
  ("3894",Blue), 2;
  ("3702",Blue), 1;
  ("3895",Blue), 2;
  ("3069bp25",Blue), 1;
  ("3069b",Blue), 5;
  ("3068b",Blue), 1;
  ("3068bp08",Blue), 2;
  ("3634",Black), 4;
  ("4859",Blue), 1;
  ("3482",OldGray), 4;
  ("4474",TrYellow), 1;
  ("3936",Blue), 2;
  ("3935",Blue), 2;
  ("3933",Blue), 1;
  ("3934",Blue), 1;
  ]
in let mobile_recovery_vehicle_info =
 {name="Mobile Recovery Vehicle";
  theme="LEGO/SYSTEM/Space/Classic";
  year=1986;
  home="http://guide.lugnet.com/set/6926_1";
  pieces=size mobile_recovery_vehicle_parts;
  minifigs=2}
in (mobile_recovery_vehicle_info,mobile_recovery_vehicle_parts: model);;
let set_6926_1 = mobile_recovery_vehicle;;


let all_terrain_vehicle =
  let all_terrain_vehicle_parts = make
  [
  ("3957",Black), 2;
  ("3956",White), 2;
  ("3005",Blue), 3;
  ("3062b",TrGreen), 2;
  ("4070",OldGray), 4;
  ("3004",Blue), 4;
  ("3004p90",Blue), 2;
  ("3004p20",Blue), 2;
  ("3622",White), 4;
  ("3010",Blue), 1;
  ("3010",White), 2;
  ("3010p04",White), 2;
  ("3066",TrBlue), 2;
  ("3009",Blue), 3;
  ("3009",White), 1;
  ("3829",White), 1;
  ("3943a",Black), 2;
  ("3855",TrYellow), 3;
  ("3937",Blue), 4;
  ("3938",Blue), 4;
  ("3831",White), 2;
  ("3830",White), 2;
  ("3838",Red), 1;
  ("3838",White), 1;
  ("193a",Red), 1;
  ("193a",White), 1;
  ("3962a",Black), 1;
  ("4079",Yellow), 1;
  ("3626ap01",Yellow), 2;
  ("970c00",Red), 1;
  ("970c00",White), 1;
  ("4006",Black), 1;
  ("973p90",Red), 1;
  ("973p90",White), 1;
  ("3024",Blue), 3;
  ("3024",White), 2;
  ("3024",TrRed), 2;
  ("4073",TrRed), 2;
  ("4081a",White), 2;
  ("4085a",White), 4;
  ("3023",Blue), 1;
  ("3023",White), 12;
  ("4175",Black), 4;
  ("3623",White), 4;
  ("3710",OldGray), 2;
  ("3710",White), 2;
  ("3666",Blue), 1;
  ("3666",OldGray), 1;
  ("3666",White), 5;
  ("3034",White), 1;
  ("3035",Black), 1;
  ("3036",Blue), 1;
  ("3036",TrYellow), 1;
  ("3960",OldGray), 2;
  ("3939",TrBlue), 2;
  ("4228",TrBlue), 1;
  ("3040b",White), 2;
  ("3665",Black), 2;
  ("3665",White), 2;
  ("3039",White), 2;
  ("3046",White), 2;
  ("3660",Blue), 2;
  ("3039p34",Blue), 2;
  ("3039p23",Blue), 2;
  ("3940",Black), 4;
  ("3749",OldGray), 6;
  ("3895",Black), 2;
  ("3069b",Blue), 4;
  ("4162",Blue), 1;
  ("4033",Blue), 3;
  ("3680c01",Yellow), 1;
  ("3483",Black), 6;
  ("3482",OldGray), 6;
  ]
in let all_terrain_vehicle_info =
 {name="All-Terrain Vehicle";
  theme="LEGO/SYSTEM/Space/Classic";
  year=1981;
  home="http://guide.lugnet.com/set/6927_1";
  pieces=size all_terrain_vehicle_parts;
  minifigs=2}
in (all_terrain_vehicle_info,all_terrain_vehicle_parts: model);;
let set_6927_1 = all_terrain_vehicle;;


let uranium_search_vehicle =
  let uranium_search_vehicle_parts = make
  [
  ("3957",OldGray), 2;
  ("3957",TrRed), 1;
  ("3005",Blue), 2;
  ("4588",OldGray), 2;
  ("4070",Blue), 4;
  ("3004",Blue), 3;
  ("3004p06",Blue), 2;
  ("3004p90",Blue), 2;
  ("3065",TrYellow), 4;
  ("3622",Blue), 2;
  ("3010",Blue), 2;
  ("3066",TrYellow), 2;
  ("3003",Blue), 3;
  ("3001",Blue), 1;
  ("3829",Blue), 1;
  ("4597",Blue), 2;
  ("3831",Blue), 2;
  ("3830",Blue), 2;
  ("4213",TrYellow), 1;
  ("4276a",OldGray), 2;
  ("4275a",Blue), 2;
  ("4315",Blue), 2;
  ("3640",Blue), 1;
  ("3639",Blue), 1;
  ("3838",Black), 1;
  ("3838",White), 1;
  ("193b",Black), 1;
  ("193b",White), 1;
  ("3962a",Black), 1;
  ("3876",TrRed), 2;
  ("3959",Black), 1;
  ("3959",OldGray), 2;
  ("3626ap01",Yellow), 2;
  ("970c00",Black), 1;
  ("970c00",White), 1;
  ("4349",OldGray), 2;
  ("4479",OldGray), 2;
  ("4522",Black), 1;
  ("4006",Black), 1;
  ("973p90",Black), 1;
  ("973p90",White), 1;
  ("3024",Blue), 4;
  ("3024",TrRed), 2;
  ("4073",TrRed), 4;
  ("4081a",Blue), 2;
  ("4085a",Blue), 6;
  ("3023",Blue), 10;
  ("3794",Blue), 1;
  ("4175",OldGray), 3;
  ("3623",Blue), 8;
  ("3710",Blue), 7;
  ("4590",Blue), 2;
  ("3022",Blue), 4;
  ("3020",Blue), 2;
  ("3960",OldGray), 4;
  ("4286",Blue), 4;
  ("3747",Blue), 6;
  ("3039",Blue), 1;
  ("3039p23",Blue), 1;
  ("4596",Blue), 6;
  ("4596",OldGray), 2;
  ("3737",Black), 4;
  ("3700",Blue), 4;
  ("3894",Blue), 4;
  ("3713",OldGray), 8;
  ("3673",OldGray), 4;
  ("3069b",Blue), 11;
  ("4288",Black), 16;
  ("4474",TrYellow), 1;
  ]
in let uranium_search_vehicle_info =
 {name="Uranium Search Vehicle";
  theme="LEGO/SYSTEM/Space/Classic";
  year=1984;
  home="http://guide.lugnet.com/set/6928_1";
  pieces=size uranium_search_vehicle_parts;
  minifigs=2}
in (uranium_search_vehicle_info,uranium_search_vehicle_parts: model);;
let set_6928_1 = uranium_search_vehicle;;


let starfleet_voyager =
  let starfleet_voyager_parts = make
  [
  ("3957",Black), 2;
  ("3957",OldGray), 1;
  ("3956",White), 4;
  ("3005",OldGray), 2;
  ("3005",White), 6;
  ("3062b",TrGreen), 3;
  ("3062b",TrRed), 3;
  ("4070",OldGray), 4;
  ("3004",OldGray), 2;
  ("3004",White), 1;
  ("3004p90",White), 4;
  ("3622",White), 4;
  ("3010",White), 4;
  ("3010p04",White), 4;
  ("3963",Black), 2;
  ("3941",OldGray), 3;
  ("3941",White), 2;
  ("3829",White), 1;
  ("3942a",Black), 2;
  ("3942a",OldGray), 3;
  ("3942a",White), 2;
  ("3943a",Black), 2;
  ("3937",OldGray), 1;
  ("3937",White), 2;
  ("3938",OldGray), 1;
  ("3938",White), 2;
  ("3831",OldGray), 2;
  ("3831",White), 2;
  ("3830",OldGray), 2;
  ("3830",White), 2;
  ("3838",Red), 1;
  ("193a",Red), 1;
  ("3962a",Black), 1;
  ("3959",Black), 1;
  ("3959",OldGray), 2;
  ("3626ap01",Yellow), 1;
  ("970c00",Red), 1;
  ("3837",OldDkGray), 1;
  ("3900",Black), 1;
  ("774",OldGray), 1;
  ("4006",Black), 1;
  ("973p90",Red), 1;
  ("3024",OldGray), 2;
  ("3024",TrRed), 14;
  ("4081a",White), 4;
  ("4085a",White), 2;
  ("3023",OldGray), 4;
  ("3023",White), 4;
  ("3839a",Black), 1;
  ("3839a",OldGray), 1;
  ("4175",Black), 2;
  ("3623",OldGray), 6;
  ("3623",Yellow), 2;
  ("3710",OldGray), 11;
  ("3710",White), 6;
  ("3666",OldGray), 6;
  ("3666",White), 2;
  ("3460",OldGray), 6;
  ("3460",White), 1;
  ("3022",OldGray), 7;
  ("3022",White), 1;
  ("4032",Black), 3;
  ("4229",OldGray), 2;
  ("3021",OldGray), 4;
  ("3020",OldGray), 5;
  ("3795",OldGray), 1;
  ("3795",White), 1;
  ("3034",OldGray), 3;
  ("3034",White), 1;
  ("3032",White), 4;
  ("3032",TrBlue), 1;
  ("3029",OldGray), 2;
  ("3958",OldGray), 1;
  ("3960",OldGray), 2;
  ("3298",White), 2;
  ("3747",OldGray), 4;
  ("3298p90",White), 1;
  ("3939",TrBlue), 1;
  ("4228",OldGray), 1;
  ("4228",TrBlue), 1;
  ("3665",OldGray), 2;
  ("3039p34",White), 2;
  ("3940",Black), 4;
  ("3479",White), 8;
  ("3069b",White), 5;
  ("3856",White), 4;
  ("3853",White), 2;
  ("3936",OldGray), 4;
  ("3935",OldGray), 4;
  ("3933",OldGray), 1;
  ("3934",OldGray), 1;
  ]
in let starfleet_voyager_info =
 {name="Starfleet Voyager";
  theme="LEGO/SYSTEM/Space/Classic";
  year=1981;
  home="http://guide.lugnet.com/set/6929_1";
  pieces=size starfleet_voyager_parts;
  minifigs=1}
in (starfleet_voyager_info,starfleet_voyager_parts: model);;
let set_6929_1 = starfleet_voyager;;


let space_supply_station =
  let space_supply_station_parts = make
  [
  ("3957",Blue), 4;
  ("3957",OldGray), 2;
  ("3947",OldGray), 1;
  ("3956",White), 2;
  ("3062b",Blue), 2;
  ("3062b",OldGray), 1;
  ("3062b",TrGreen), 6;
  ("3062b",TrRed), 4;
  ("3004",White), 2;
  ("3004p06",White), 2;
  ("3004p90",White), 1;
  ("3004p20",Blue), 2;
  ("3622",White), 2;
  ("3009",White), 2;
  ("3008",White), 3;
  ("3963",OldGray), 2;
  ("3003",White), 2;
  ("3941",Blue), 16;
  ("3829",OldGray), 4;
  ("4346",Blue), 2;
  ("4346",OldGray), 1;
  ("4345a",Blue), 2;
  ("4345a",OldGray), 1;
  ("4315",White), 2;
  ("3640",OldGray), 1;
  ("3639",OldGray), 1;
  ("3838",Red), 2;
  ("3838",Yellow), 2;
  ("4360",Black), 1;
  ("193a",Red), 2;
  ("193a",Yellow), 2;
  ("3962a",Black), 2;
  ("4079",Blue), 2;
  ("3959",Black), 3;
  ("3959",OldGray), 2;
  ("3626ap01",Yellow), 4;
  ("970c00",Red), 2;
  ("970c00",Yellow), 2;
  ("4349",Black), 1;
  ("4479",Black), 1;
  ("774",Black), 1;
  ("973p90",Red), 2;
  ("973p90",Yellow), 2;
  ("4073",TrRed), 2;
  ("4081a",OldGray), 4;
  ("4081a",White), 4;
  ("4085a",OldGray), 6;
  ("4085a",White), 2;
  ("3023",OldGray), 2;
  ("3794",OldGray), 5;
  ("3839b",OldGray), 2;
  ("4175",Blue), 2;
  ("4175",OldGray), 1;
  ("3460",Blue), 4;
  ("3460",White), 2;
  ("4477",White), 5;
  ("3022",OldGray), 2;
  ("4032",Black), 2;
  ("122c01",OldGray), 4;
  ("3020",OldGray), 2;
  ("3795",Blue), 2;
  ("3795",OldGray), 1;
  ("3795",White), 2;
  ("3034",OldGray), 2;
  ("3028",White), 1;
  ("3960",OldGray), 2;
  ("4285a",OldGray), 4;
  ("4286",White), 8;
  ("4089",OldGray), 2;
  ("3039",Blue), 6;
  ("3039p34",White), 1;
  ("3039p23",White), 1;
  ("4476",Blue), 8;
  ("3702",White), 1;
  ("4162",White), 1;
  ("4288",Black), 8;
  ("4474",TrBlue), 2;
  ]
in let space_supply_station_info =
 {name="Space Supply Station";
  theme="LEGO/SYSTEM/Space/Classic";
  year=1983;
  home="http://guide.lugnet.com/set/6930_1";
  pieces=size space_supply_station_parts;
  minifigs=4}
in (space_supply_station_info,space_supply_station_parts: model);;
let set_6930_1 = space_supply_station;;


let fx_star_patroller =
  let fx_star_patroller_parts = make
  [
  ("3957",TrRed), 2;
  ("4732",Black), 1;
  ("3005",Blue), 10;
  ("3005",TrYellow), 2;
  ("4588",TrRed), 2;
  ("4070",Black), 2;
  ("4070",Blue), 2;
  ("4733",Black), 1;
  ("3004",OldGray), 1;
  ("3004p01",OldGray), 2;
  ("4595",OldGray), 4;
  ("3622",Blue), 4;
  ("3010",Blue), 1;
  ("3010",OldGray), 2;
  ("3010p42",Blue), 2;
  ("3009",Blue), 4;
  ("3008",Blue), 2;
  ("3963",Black), 2;
  ("3003",OldGray), 1;
  ("4591",Black), 2;
  ("3001",OldGray), 1;
  ("3006",Blue), 1;
  ("4589",Black), 4;
  ("4589",Blue), 2;
  ("4589",TrRed), 4;
  ("4589",TrYellow), 2;
  ("3937",Black), 1;
  ("3938",Black), 1;
  ("4213",Blue), 1;
  ("4213",OldGray), 2;
  ("4593",Black), 4;
  ("4593",OldGray), 1;
  ("298",Black), 4;
  ("298",Blue), 1;
  ("4315",Blue), 3;
  ("4315",OldGray), 1;
  ("73590a",Black), 4;
  ("3838",Yellow), 1;
  ("193b",Yellow), 1;
  ("3626ap01",Yellow), 1;
  ("970c00",Yellow), 1;
  ("4736",Blue), 1;
  ("973p90",Yellow), 1;
  ("4215a",TrBlue), 1;
  ("3024",Blue), 2;
  ("4073",TrYellow), 2;
  ("3023",Black), 2;
  ("3023",OldGray), 10;
  ("3023",Yellow), 1;
  ("3794",Black), 1;
  ("3794",Blue), 2;
  ("3839b",OldGray), 2;
  ("3475b",OldGray), 2;
  ("3710",Blue), 6;
  ("3710",OldGray), 5;
  ("3666",OldGray), 2;
  ("3022",OldGray), 2;
  ("4032",Black), 2;
  ("4229",Black), 4;
  ("4600",OldGray), 3;
  ("3021",Black), 1;
  ("3021",OldGray), 7;
  ("3020",Blue), 1;
  ("3020",OldGray), 2;
  ("3795",OldGray), 1;
  ("3832",Blue), 2;
  ("3032",Blue), 1;
  ("3032",OldGray), 1;
  ("3036",OldGray), 1;
  ("4740",OldGray), 2;
  ("4740",TrBlue), 2;
  ("4740",TrRed), 2;
  ("4286",Blue), 2;
  ("3298",Blue), 1;
  ("3747",Blue), 1;
  ("3747",OldGray), 2;
  ("3665",Blue), 2;
  ("3040px5",Blue), 2; (* Unofficial part *)
  ("3039",Blue), 1;
  ("3660",Blue), 2;
  ("3039p32",OldGray), 3;
  ("3039p05",Blue), 2;
  ("4735",Black), 2;
  ("4735",OldGray), 4;
  ("4476",Blue), 1;
  ("4746",OldGray), 2;
  ("3700",Blue), 1;
  ("3700",OldGray), 1;
  ("3673",OldGray), 1;
  ("3069bp25",OldGray), 1;
  ("3069b",Black), 1;
  ("3069b",Blue), 3;
  ("3069b",OldGray), 2;
  ("3069bp06",Blue), 2;
  ("3069bp06",OldGray), 4;
  ("3068b",Black), 1;
  ("3068bp08",Blue), 2;
  ("3068bp08",OldGray), 2;
  ("3641",Black), 6;
  ("4624",OldGray), 6;
  ("4474",TrBlue), 1;
  ("3936",OldGray), 1;
  ("3935",OldGray), 1;
  ("3933",OldGray), 1;
  ("3934",OldGray), 1;
  ("4475",OldGray), 3;
  ]
in let fx_star_patroller_info =
 {name="FX-Star Patroller";
  theme="LEGO/SYSTEM/Space/Classic";
  year=1985;
  home="http://guide.lugnet.com/set/6931_1";
  pieces=size fx_star_patroller_parts;
  minifigs=1}
in (fx_star_patroller_info,fx_star_patroller_parts: model);;
let set_6931_1 = fx_star_patroller;;


let alien_moon_stalker =
  let alien_moon_stalker_parts = make
  [
  ("3957",TrRed), 2;
  ("792c01",OldGray), 1;
  ("3612",OldGray), 5;
  ("4070",OldGray), 8;
  ("3004",OldGray), 5;
  ("4595",Black), 4;
  ("3010",OldGray), 9;
  ("3963",Black), 2;
  ("3003",OldGray), 8;
  ("3063",OldGray), 8;
  ("3941",Black), 2;
  ("3941",White), 6;
  ("4730",OldGray), 2;
  ("3001",OldGray), 2;
  ("4589",Black), 2;
  ("4589",White), 2;
  ("4589",TrRed), 2;
  ("3942b",Black), 2;
  ("3942b",White), 2;
  ("4346",OldGray), 2;
  ("4345a",OldGray), 2;
  ("4448",Black), 4;
  ("4448",TrGreen), 4;
  ("4221",Black), 2;
  ("4220",OldGray), 1;
  ("4593",Black), 4;
  ("4593",White), 2;
  ("298",OldGray), 4;
  ("298",White), 2;
  ("4315",OldGray), 1;
  ("3640",OldGray), 2;
  ("3639",OldGray), 2;
  ("73590a",OldGray), 2;
  ("3838",Blue), 1;
  ("3838",Red), 1;
  ("2343",Black), 2;
  ("193b",Blue), 1;
  ("193b",Red), 1;
  ("3626ap01",Yellow), 2;
  ("970c00",Blue), 1;
  ("970c00",Red), 1;
  ("973p90",Blue), 1;
  ("973p90",Red), 1;
  ("4865",OldGray), 4;
  ("3024",TrGreen), 6;
  ("3024",TrRed), 10;
  ("4085a",OldGray), 4;
  ("3023",Black), 2;
  ("3023",OldGray), 7;
  ("4623",OldGray), 2;
  ("3475b",Black), 2;
  ("3623",OldGray), 8;
  ("3710",OldGray), 4;
  ("3022",OldGray), 7;
  ("3021",OldGray), 4;
  ("3020",OldGray), 3;
  ("3795",OldGray), 5;
  ("3034",OldGray), 2;
  ("3832",OldGray), 1;
  ("3031",OldGray), 1;
  ("3035",OldGray), 1;
  ("3029",OldGray), 1;
  ("4740",Black), 2;
  ("4740",TrRed), 2;
  ("3747",OldGray), 6;
  ("3298p90",OldGray), 1;
  ("3040b",OldGray), 12;
  ("3039",OldGray), 3;
  ("3039p05",OldGray), 4;
  ("3039p34",OldGray), 1;
  ("3037",OldGray), 2;
  ("2342",Black), 1;
  ("2342",OldGray), 2;
  ("4741",OldGray), 4;
  ("3706",Black), 2;
  ("3700",OldGray), 4;
  ("3070b",TrGreen), 4;
  ("3070b",TrRed), 4;
  ("3069bp25",OldGray), 1;
  ("3068b",Black), 2;
  ("3068b",OldGray), 4;
  ("3680c01",OldGray), 6;
  ("4859",OldGray), 2;
  ("4474",TrGreen), 1;
  ("3936",OldGray), 2;
  ("3935",OldGray), 2;
  ]
in let alien_moon_stalker_info =
 {name="Alien Moon Stalker";
  theme="LEGO/SYSTEM/Space/Classic";
  year=1986;
  home="http://guide.lugnet.com/set/6940_1";
  pieces=size alien_moon_stalker_parts;
  minifigs=2}
in (alien_moon_stalker_info,alien_moon_stalker_parts: model);;
let set_6940_1 = alien_moon_stalker;;


let mobile_rocket_transport =
  let mobile_rocket_transport_parts = make
  [
  ("3957",Black), 3;
  ("4083",OldGray), 4;
  ("3956",OldGray), 2;
  ("3956",White), 4;
  ("3005",OldGray), 2;
  ("3062b",TrRed), 3;
  ("4070",OldGray), 2;
  ("3004",Blue), 4;
  ("3010p04",OldGray), 3;
  ("3009",Blue), 2;
  ("3067",TrYellow), 2;
  ("3963",OldGray), 2;
  ("3003",Blue), 1;
  ("3941",Black), 6;
  ("3941",White), 4;
  ("3001",Blue), 2;
  ("3829",OldGray), 5;
  ("3942a",White), 1;
  ("3943",Black), 2;
  ("3943",OldGray), 1;
  ("3943",White), 1;
  ("3937",OldGray), 4;
  ("3938",OldGray), 4;
   ("4275",Yellow), 2;
   ("4276",Yellow), 2;
(* ("x1125",Yellow), 2; Unofficial part *)
(* ("x1126",Yellow), 2; Unofficial part *)
  ("3324c01",OldGray), 2;
  ("3838",Yellow), 2;
  ("4360",Black), 2;
  ("193a",Yellow), 2;
  ("3962a",Black), 1;
  ("3959",Black), 2;
  ("3626ap01",Yellow), 2;
  ("970c00",Yellow), 2;
  ("973p90",Yellow), 2;
  ("3024",TrGreen), 2;
  ("4073",TrRed), 4;
  ("4081a",OldGray), 2;
  ("4085a",OldGray), 2;
  ("3023",White), 2;
  ("3839a",OldGray), 2;
  ("4175",Black), 2;
  ("4175",OldGray), 2;
  ("3623",OldGray), 2;
  ("3710",OldGray), 4;
  ("3666",OldGray), 1;
  ("3022",Blue), 3;
  ("4032",Black), 7;
  ("4229",Black), 4;
  ("3021",Blue), 3;
  ("3020",Blue), 4;
  ("3020",OldGray), 1;
  ("3795",OldGray), 5;
  ("3832",Blue), 1;
  ("3032",OldGray), 1;
  ("3456",Blue), 1;
  ("4285a",OldGray), 1;
  ("4286",OldGray), 4;
  ("3747",Blue), 2;
  ("3939",TrYellow), 1;
  ("4228",TrYellow), 1;
  ("3660",Blue), 7;
  ("3039p34",OldGray), 1;
  ("3039p23",OldGray), 1;
  ("3705",Black), 1;
  ("3737",Black), 1;
  ("3749",Black), 8;
  ("3700",Blue), 4;
  ("3702",Blue), 4;
  ("3713",OldGray), 1;
  ("3673",OldGray), 4;
  ("3069b",OldGray), 1;
  ("3068b",OldGray), 6;
  ("3403c01",Black), 1;
  ("3634",Black), 8;
  ("3482",Black), 8;
  ("3933",OldGray), 2;
  ("3934",OldGray), 2;
  ]
in let mobile_rocket_transport_info =
 {name="Mobile Rocket Transport";
  theme="LEGO/SYSTEM/Space/Classic";
  year=1982;
  home="http://guide.lugnet.com/set/6950_1";
  pieces=size mobile_rocket_transport_parts;
  minifigs=2}
in (mobile_rocket_transport_info,mobile_rocket_transport_parts: model);;
let set_6950_1 = mobile_rocket_transport;;


let robot_command_center =
  let robot_command_center_parts = make
  [
  ("3957",TrRed), 2;
  ("792c02",Blue), 2;
  ("3612",Blue), 10;
  ("3956",Blue), 3;
  ("3956",White), 1;
  ("3005",Blue), 10;
  ("3062b",TrRed), 3;
  ("3062b",TrYellow), 2;
  ("3004",Blue), 6;
  ("3004p06",OldGray), 2;
  ("3004p90",Blue), 2;
  ("3004p20",Blue), 2;
  ("3010",Blue), 2;
  ("3009",Blue), 4;
  ("3003",Blue), 5;
  ("3941",OldGray), 2;
  ("3941",White), 3;
  ("4591",Black), 1;
  ("4591",Blue), 2;
  ("3002",Blue), 4;
  ("3001",Blue), 8;
  ("3829",Blue), 2;
  ("3829",OldGray), 2;
  ("4597",Blue), 2;
  ("3942a",Black), 1;
  ("4346",Blue), 4;
  ("4345a",Blue), 4;
  ("4448",TrYellow), 2;
  ("4221",OldGray), 4;
  ("4220",OldGray), 2;
  ("3937",OldGray), 5;
  ("3938",OldGray), 5;
  ("3831",Blue), 4;
  ("3830",Blue), 4;
  ("4213",Blue), 1;
  ("4213",TrYellow), 2;
  ("4315",Blue), 5;
  ("4625",Blue), 2;
  ("3838",Black), 1;
  ("3838",Red), 1;
  ("3838",Yellow), 1;
  ("193b",Black), 1;
  ("193b",Red), 1;
  ("193b",Yellow), 1;
  ("3962a",Black), 1;
  ("3876",TrRed), 2;
  ("3959",Black), 2;
  ("3959",White), 1;
  ("3626ap01",Yellow), 3;
  ("970c00",Black), 1;
  ("970c00",Red), 1;
  ("970c00",Yellow), 1;
  ("4349",Black), 2;
  ("4349",OldGray), 6;
  ("973p90",Black), 1;
  ("973p90",Red), 1;
  ("973p90",Yellow), 1;
  ("3024",Blue), 2;
  ("3024",TrGreen), 2;
  ("4073",TrGreen), 2;
  ("4073",TrRed), 9;
  ("4073",TrYellow), 6;
  ("4081a",Blue), 4;
  ("4081a",OldGray), 2;
  ("4085a",Blue), 4;
  ("3023",Blue), 10;
  ("3023",OldGray), 3;
  ("3794",OldGray), 4;
  ("4175",OldGray), 2;
  ("3710",Blue), 2;
  ("3710",OldGray), 1;
  ("4590",Blue), 2;
  ("4590",OldGray), 2;
  ("3666",Blue), 4;
  ("4477",Blue), 1;
  ("3022",Blue), 3;
  ("4229",OldGray), 4;
  ("122c01",OldGray), 2;
  ("3021",OldGray), 1;
  ("3020",OldGray), 2;
  ("3795",Blue), 1;
  ("3795",OldGray), 5;
  ("3832",Blue), 1;
  ("3960",OldGray), 2;
  ("4285a",OldGray), 1;
  ("3747",Blue), 4;
  ("3040b",Blue), 2;
  ("3039",Blue), 2;
  ("3039",OldGray), 1;
  ("3660p01",Blue), 2;
  ("3039p05",Blue), 3;
  ("3039p34",Blue), 2;
  ("3039p23",Blue), 2;
  ("4596",Blue), 4;
  ("4596",OldGray), 1;
  ("4596",White), 2;
  ("3749",OldGray), 3;
  ("3700",OldGray), 1;
  ("3700",White), 2;
  ("3701",OldGray), 1;
  ("3702",Blue), 3;
  ("3673",OldGray), 1;
  ("3068b",Blue), 2;
  ("4033",Blue), 4;
  ("3680c01",Blue), 1;
  ("3641",Black), 4;
  ("4447",Blue), 2;
  ("4474",Blue), 4;
  ("3936",OldGray), 1;
  ("3935",OldGray), 1;
  ]
in let robot_command_center_info =
 {name="Robot Command Center";
  theme="LEGO/SYSTEM/Space/Classic";
  year=1984;
  home="http://guide.lugnet.com/set/6951_1";
  pieces=size robot_command_center_parts;
  minifigs=3}
in (robot_command_center_info,robot_command_center_parts: model);;
let set_6951_1 = robot_command_center;;


let solar_power_transporter =
  let solar_power_transporter_parts = make
  [
  ("3957",TrRed), 8;
  ("4070",Blue), 2;
  ("4070",OldGray), 4;
  ("4733",Blue), 1;
  ("3004",OldGray), 6;
  ("4595",Black), 4;
  ("3622",OldGray), 4;
  ("3010p42",OldGray), 4;
  ("3963",Black), 4;
  ("3003",OldGray), 4;
  ("3001",OldGray), 2;
  ("3829",OldGray), 2;
  ("4589",TrRed), 14;
  ("3937",Black), 2;
  ("3937",Blue), 1;
  ("3938",OldGray), 3;
  ("4593",Black), 6;
  ("4593",OldGray), 2;
  ("298",Black), 6;
  ("298",Blue), 2;
  ("4315",OldGray), 2;
  ("3640",OldGray), 2;
  ("3639",OldGray), 2;
  ("73590a",Black), 2;
  ("193b",Black), 1;
  ("193b",Red), 1;
  ("193b",Yellow), 1;
  ("193b",White), 1;
  ("3626ap01",Yellow), 4;
  ("970c00",Black), 1;
  ("970c00",Red), 1;
  ("970c00",Yellow), 1;
  ("970c00",White), 1;
  ("4736",Blue), 1;
  ("973p90",Black), 1;
  ("973p90",Red), 1;
  ("973p90",Yellow), 1;
  ("973p90",White), 1;
  ("3024",TrGreen), 4;
  ("3024",TrRed), 4;
  ("4073",TrYellow), 2;
  ("4081a",OldGray), 4;
  ("4085a",OldGray), 4;
  ("3023",Black), 4;
  ("3023",OldGray), 24;
  ("3794",OldGray), 5;
  ("3475b",Black), 4;
  ("4175",Black), 2;
  ("3710",OldGray), 2;
  ("4590",OldGray), 2;
  ("3460",OldGray), 6;
  ("3022",OldGray), 10;
  ("3021",OldGray), 2;
  ("3020",OldGray), 7;
  ("3795",OldGray), 8;
  ("3034",OldGray), 2;
  ("3832",OldGray), 1;
  ("3032",OldGray), 1;
  ("3030",OldGray), 1;
  ("3958",OldGray), 2;
  ("3033",OldGray), 1;
  ("4740",TrRed), 5;
  ("3298",OldGray), 2;
  ("4228",OldGray), 2;
  ("3660",OldGray), 2;
  ("3039p32",OldGray), 2;
  ("3037",OldGray), 4;
  ("4735",Blue), 3;
  ("4737",OldGray), 4;
  ("4476",OldGray), 2;
  ("3749",OldGray), 6;
  ("3700",OldGray), 14;
  ("3701",OldGray), 6;
  ("3673",OldGray), 6;
  ("3709b",OldGray), 4;
  ("3069bp25",OldGray), 2;
  ("3069b",OldGray), 2;
  ("3069bp06",OldGray), 4;
  ("3068b",OldGray), 6;
  ("3068bp08",OldGray), 4;
  ("3634",Black), 6;
  ("3482",Black), 6;
  ("4474",TrGreen), 2;
  ("3936",OldGray), 4;
  ("3935",OldGray), 4;
  ]
in let solar_power_transporter_info =
 {name="Solar Power Transporter";
  theme="LEGO/SYSTEM/Space/Classic";
  year=1985;
  home="http://guide.lugnet.com/set/6952_1";
  pieces=size solar_power_transporter_parts;
  minifigs=4}
in (solar_power_transporter_info,solar_power_transporter_parts: model);;
let set_6952_1 = solar_power_transporter;;


let beta1_command_base =
  let beta1_command_base_parts = make
  [
  ("3957",Black), 2;
  ("3957",OldGray), 6;
  ("3144",OldGray), 1;
  ("4083",OldGray), 2;
  ("3947",OldGray), 2;
  ("3956",Black), 4;
  ("3956",Blue), 1;
  ("3956",OldGray), 3;
  ("3005",Blue), 9;
  ("3062b",TrGreen), 5;
  ("3062b",TrRed), 4;
  ("3004",Blue), 23;
  ("3004",Yellow), 2;
  ("3004p90",Blue), 1;
  ("3004p20",Blue), 2;
  ("3622",Blue), 5;
  ("3010",Blue), 3;
  ("3066",TrYellow), 1;
  ("3009",Blue), 8;
  ("3754px7",Blue), 1;
  ("3008",Blue), 3;
  ("3008",OldGray), 4;
  ("3963",Black), 2;
  ("3003",Blue), 5;
  ("3941",Black), 2;
  ("3941",White), 4;
  ("3001",Blue), 6;
  ("3006",Blue), 2;
  ("3829",OldGray), 2;
  ("3942a",White), 2;
  ("3943a",White), 2;
  ("3596c90",White), 1;
  ("3855a",TrYellow), 2;
  ("3762",TrYellow), 1;
  ("3937",OldGray), 1;
  ("3938",OldGray), 1;
  ("3149c01",Blue), 1;
  ("3838",Red), 2;
  ("3838",OldGray), 1;
  ("3838",White), 3;
  ("193a",Red), 2;
  ("193a",White), 2;
  ("3962a",Black), 3;
  ("4079",OldGray), 2;
  ("4079",Yellow), 2;
  ("3959",Black), 1;
  ("3959",OldGray), 2;
  ("3899",Clear), 1;
  ("3626ap01",Yellow), 4;
  ("970c00",Red), 2;
  ("970c00",White), 2;
  ("4006",Black), 2;
  ("973p90",Red), 2;
  ("973p90",White), 2;
  ("3024",Blue), 8;
  ("3024",TrRed), 2;
  ("4085a",OldGray), 5;
  ("3023",Blue), 2;
  ("3023",OldGray), 2;
  ("3023",Yellow), 4;
  ("3794",OldGray), 3;
  ("3839a",OldGray), 1;
  ("3460",OldGray), 2;
  ("3022",OldGray), 2;
  ("122c01",OldGray), 2;
  ("3020",OldGray), 1;
  ("3020",Yellow), 1;
  ("3795",OldGray), 1;
  ("3795",Yellow), 2;
  ("3034",Blue), 1;
  ("3034",OldGray), 1;
  ("3035",OldGray), 3;
  ("3029",Blue), 5;
  ("3036",Blue), 1;
  ("3036",TrYellow), 2;
  ("3960",OldGray), 2;
  ("3961",OldGray), 1;
  ("3747",OldGray), 1;
  ("3297p90",OldGray), 1;
  ("3040b",Blue), 2;
  ("3665",Blue), 2;
  ("3039",OldGray), 1;
  ("3039",Yellow), 2;
  ("3660",Blue), 1;
  ("3039p34",Blue), 2;
  ("3940",Black), 2;
  ("3940",OldGray), 10;
  ("3895",Blue), 6;
  ("3673",OldGray), 2;
  ("3068b",Blue), 3;
  ("3228b",OldGray), 3;
  ("3680c01",OldGray), 1;
  ("3680c01",Yellow), 2;
  ("3641",Black), 4;
  ("3853",Blue), 2;
  ("3761",Blue), 1;
  ("3936",OldGray), 1;
  ("3935",OldGray), 1;
  ("3933",OldGray), 2;
  ("3934",OldGray), 2;
  ]
in let beta1_command_base_info =
 {name="Beta-1 Command Base";
  theme="LEGO/SYSTEM/Space/Classic";
  year=1980;
  home="http://guide.lugnet.com/set/6970_1";
  pieces=size beta1_command_base_parts;
  minifigs=4}
in (beta1_command_base_info,beta1_command_base_parts: model);;
let set_6970_1 = beta1_command_base;;


let intergalactic_command_base =
  let intergalactic_command_base_parts = make
  [
  ("3957",OldGray), 4;
  ("3957",TrRed), 2;
  ("3947",OldGray), 2;
  ("4598",White), 2;
  ("3005",Blue), 10;
  ("4588",Black), 2;
  ("3062b",TrGreen), 3;
  ("3062b",TrRed), 8;
  ("4070",White), 2;
  ("3004",Blue), 5;
  ("3004p06",White), 2;
  ("3065",TrYellow), 1;
  ("3622",Blue), 2;
  ("3008",Blue), 6;
  ("3963",OldGray), 4;
  ("3963",White), 2;
  ("3003",Blue), 1;
  ("3941",Blue), 3;
  ("3941",White), 3;
  ("4591",Black), 2;
  ("4591",White), 2;
  ("3829",Blue), 2;
  ("3829",White), 2;
  ("4597",OldGray), 1;
  ("3942b",White), 1;
  ("3185",Blue), 3;
  ("3762",TrYellow), 2;
  ("3937",OldGray), 4;
  ("3938",OldGray), 4;
  ("4276a",Black), 2;
  ("4275a",Black), 2;
  ("3149c01",Blue), 1;
  ("x467",Black), 2;
  ("3838",Black), 1;
  ("3838",Blue), 1;
  ("3838",Yellow), 1;
  ("4360",OldGray), 1;
  ("193b",Black), 1;
  ("193b",Blue), 1;
  ("193b",Yellow), 1;
  ("3962a",Black), 1;
  ("3876",TrRed), 4;
  ("3959",Black), 1;
  ("3959",Blue), 4;
  ("3959",OldGray), 6;
  ("3959",White), 2;
  ("3626ap01",Yellow), 3;
  ("970c00",Black), 1;
  ("970c00",Blue), 1;
  ("970c00",Yellow), 1;
  ("4479",OldGray), 2;
  ("4522",Black), 1;
  ("4006",Black), 1;
  ("973p90",Black), 1;
  ("973p90",Blue), 1;
  ("973p90",Yellow), 1;
  ("3024",Blue), 6;
  ("4073",TrGreen), 8;
  ("4073",TrRed), 12;
  ("4073",TrYellow), 2;
  ("4081a",White), 4;
  ("4085a",Blue), 2;
  ("4085a",White), 2;
  ("3023",Black), 9;
  ("3023",Blue), 11;
  ("3023",White), 4;
  ("3794",Blue), 7;
  ("3710",OldGray), 2;
  ("4590",Blue), 4;
  ("4590",OldGray), 2;
  ("4590",White), 4;
  ("3666",Blue), 1;
  ("3460",Blue), 2;
  ("3460",White), 1;
  ("4477",Blue), 3;
  ("3022",OldGray), 2;
  ("4032",Black), 2;
  ("4229",White), 3;
  ("3021",Blue), 1;
  ("3795",White), 2;
  ("3034",OldGray), 1;
  ("3034",White), 1;
  ("3832",Blue), 4;
  ("4282",Blue), 1;
  ("3030",TrYellow), 1;
  ("3958",TrYellow), 2;
  ("3033",Blue), 2;
  ("3960",White), 4;
  ("4285a",OldGray), 2;
  ("4286",Blue), 4;
  ("4287",Black), 6;
  ("4287",Blue), 4;
  ("3298p90",White), 1;
  ("4228",Blue), 2;
  ("3040b",Blue), 2;
  ("3039p34",White), 2;
  ("3039p23",White), 1;
  ("4596",Blue), 6;
  ("4596",White), 2;
  ("4476",Blue), 10;
  ("4476",OldGray), 2;
  ("3705",Black), 1;
  ("3706",Black), 1;
  ("3749",OldGray), 1;
  ("3703",Blue), 1;
  ("3709b",OldGray), 1;
  ("3070b",TrRed), 2;
  ("3069b",Blue), 8;
  ("4162",Blue), 9;
  ("4033",Blue), 4;
  ("3680c01",OldGray), 1;
  ("3761",Blue), 2;
  ("4447",Blue), 8;
  ("4475",White), 1;
  ]
in let intergalactic_command_base_info =
  {name="Intergalactic Command Base";
  theme="LEGO/SYSTEM/Space/Classic";
  year=1984;
  home="http://guide.lugnet.com/set/6971_1";
  pieces=size intergalactic_command_base_parts;
  minifigs=3}
in (intergalactic_command_base_info,intergalactic_command_base_parts: model);;
let set_6971_1 = intergalactic_command_base;;


let polaris1_space_lab =
  let polaris1_space_lab_parts = make
  [
  ("3957",TrRed), 3;
  ("3947",OldGray), 1;
  ("3956",Black), 2;
  ("4598",White), 2;
  ("3005",Black), 2;
  ("3005",White), 15;
  ("3005",TrBlue), 2;
  ("4588",TrRed), 2;
  ("3062b",Black), 4;
  ("4070",White), 14;
  ("3004",White), 40;
  ("3065",TrBlue), 2;
  ("4595",Black), 4;
  ("4595",White), 2;
  ("3622",White), 17;
  ("3003",Black), 2;
  ("3003",White), 2;
  ("2357",White), 1;
  ("3063",White), 4;
  ("3941",Black), 3;
  ("3001",Black), 2;
  ("4589",Black), 4;
  ("3943",Black), 1;
  ("4448",TrBlue), 4;
  ("3937",White), 6;
  ("3938",White), 5;
  ("4593",Black), 8;
  ("298",Black), 8;
  ("4276",White), 8;
  ("4275",White), 8;
  ("3149c01",Black), 2;
  ("73590a",Black), 2;
  ("3838",Blue), 3;
  ("193b",Blue), 3;
  ("3626ap01",Yellow), 3;
  ("970c00",Blue), 3;
  ("973p90",Blue), 3;
  ("4215a",White), 1;
  ("2345",White), 3;
  ("3024",Black), 2;
  ("3024",White), 8;
  ("3024",TrRed), 6;
  ("4085b",White), 2;
  ("3023",Black), 2;
  ("3023",White), 13;
  ("3794",Black), 2;
  ("4175",White), 2;
  ("3623",White), 6;
  ("3710",Black), 2;
  ("3710",White), 8;
  ("4590",Black), 2;
  ("3666",White), 3;
  ("3460",Black), 2;
  ("4477",White), 4;
  ("3022",Black), 6;
  ("3022",White), 2;
  ("2420",White), 1;
  ("4032",Black), 2;
  ("4032",White), 2;
  ("4229",Black), 2;
  ("3021",Black), 2;
  ("3021",White), 2;
  ("3020",Black), 2;
  ("3020",White), 6;
  ("3795",Black), 2;
  ("3795",White), 2;
  ("3034",White), 2;
  ("3832",White), 2;
  ("4282",Black), 2;
  ("2419",Black), 4;
  ("2419",TrRed), 4;
  ("3031",Black), 1;
  ("3035",Black), 2;
  ("3028",Black), 2;
  ("4740",TrRed), 4;
  ("4285a",White), 2;
  ("3747",White), 1;
  ("3298p90",White), 1;
  ("3040b",White), 4;
  ("3040p32",White), 2;
  ("3660",White), 2;
  ("3039p32",White), 2;
  ("3038",White), 2;
  ("3037",White), 2;
  ("4871",White), 2;
  ("4460",White), 6;
  ("2342",White), 2;
  ("3940",Black), 2;
  ("4737",Black), 1;
  ("4476",White), 6;
  ("3706",Black), 1;
  ("3700",Black), 2;
  ("3895",White), 2;
  ("4265a",OldGray), 1;
  ("3069bp05",White), 2;
  ("3069b",White), 4;
  ("2431",White), 2;
  ("4162",White), 8;
  ("3068b",Black), 6;
  ("3068b",White), 2;
  ("3068bp08",White), 2;
  ("4035",White), 4;
  ("4447",White), 4;
  ("2418a",White), 1;
  ]
in let polaris1_space_lab_info =
 {name="Polaris-I Space Lab";
  theme="LEGO/SYSTEM/Space/Classic";
  year=1987;
  home="http://guide.lugnet.com/set/6972_1";
  pieces=size polaris1_space_lab_parts;
  minifigs=3}
in (polaris1_space_lab_info,polaris1_space_lab_parts: model);;
let set_6972_1 = polaris1_space_lab;;


let galaxy_commander =
  let galaxy_commander_parts = make
  [
  ("3957",Blue), 5;
  ("3957",OldGray), 1;
  ("3957",White), 8;
  ("6099p03",OldGray), 1;
  ("3956",Blue), 3;
  ("3956",White), 2;
  ("3005",Blue), 4;
  ("3062b",TrGreen), 4;
  ("3062b",TrRed), 14;
  ("3062b",TrYellow), 4;
  ("3004",Blue), 4;
  ("3004",White), 6;
  ("3004p06",Blue), 2;
  ("3004p06",White), 5;
  ("3010",Blue), 2;
  ("3010",White), 3;
  ("3066",TrBlue), 8;
  ("3009",White), 4;
  ("3008",Blue), 4;
  ("3963",Blue), 2;
  ("3963",White), 4;
  ("3003",Blue), 2;
  ("3003",White), 2;
  ("3941",White), 2;
  ("3002",Blue), 2;
  ("3001",Blue), 3;
  ("3829",Blue), 4;
  ("3943",Blue), 1;
  ("3943",White), 4;
  ("4346",Blue), 2;
  ("4345a",Blue), 2;
  ("3937",White), 3;
  ("3938",White), 3;
  ("3831",Blue), 4;
  ("3830",Blue), 4;
  ("4213",Blue), 1;
  ("4315",Blue), 3;
  ("x467",Black), 1;
  ("3838",Red), 1;
  ("3838",Yellow), 2;
  ("3838",White), 2;
  ("4360",White), 4;
  ("193a",Red), 1;
  ("193a",Yellow), 2;
  ("193a",White), 2;
  ("3962a",Black), 2;
  ("4079",Blue), 1;
  ("3959",OldGray), 1;
  ("3959",White), 2;
  ("3626ap01",Yellow), 5;
  ("970c00",Red), 1;
  ("970c00",Yellow), 2;
  ("970c00",White), 2;
  ("4349",Black), 1;
  ("4479",Black), 1;
  ("973p90",Red), 1;
  ("973p90",Yellow), 2;
  ("973p90",White), 2;
  ("3024",Blue), 6;
  ("3024",White), 7;
  ("3024",TrRed), 8;
  ("4073",TrGreen), 6;
  ("4073",TrRed), 7;
  ("4081a",Blue), 20;
  ("4081a",White), 10;
  ("4085a",OldGray), 2;
  ("4085a",White), 4;
  ("3023",Blue), 10;
  ("3023",White), 11;
  ("3839b",Blue), 1;
  ("3839b",White), 4;
  ("4175",Blue), 2;
  ("4175",OldGray), 1;
  ("3623",Blue), 4;
  ("3623",White), 5;
  ("3710",Blue), 6;
  ("3710",White), 5;
  ("3666",Blue), 4;
  ("3666",White), 2;
  ("3460",White), 5;
  ("4477",White), 4;
  ("3022",Blue), 4;
  ("3022",White), 3;
  ("4032",Black), 7;
  ("4229",Black), 6;
  ("122c01",OldGray), 4;
  ("3021",Blue), 4;
  ("3021",White), 1;
  ("3020",Blue), 3;
  ("3020",White), 5;
  ("3795",Blue), 5;
  ("3795",White), 4;
  ("3034",OldGray), 1;
  ("3034",White), 1;
  ("3832",Blue), 2;
  ("3832",White), 2;
  ("3035",TrBlue), 1;
  ("3029",White), 1;
  ("3033",White), 1;
  ("3028",White), 1;
  ("4285a",Blue), 1;
  ("4286",Blue), 2;
  ("4287",Blue), 2;
  ("3298",Blue), 4;
  ("3298p90",Blue), 1;
  ("4228",White), 2;
  ("4228",TrBlue), 2;
  ("3040b",White), 4;
  ("3039",Blue), 4;
  ("3660",White), 2;
  ("3039p34",White), 1;
  ("3039p23",Blue), 1;
  ("3039p23",White), 1;
  ("3940",Black), 3;
  ("4476",Blue), 4;
  ("3479",White), 3;
  ("3895",Blue), 2;
  ("3070b",White), 2;
  ("3069b",Blue), 7;
  ("3069b",White), 7;
  ("4162",White), 3;
  ("3068b",Blue), 3;
  ("4288",Black), 8;
  ("4474",TrBlue), 2;
  ("3933",Blue), 2;
  ("3933",White), 3;
  ("3934",Blue), 2;
  ("3934",White), 3;
  ("4475",White), 2;
  ]
in let galaxy_commander_info =
 {name="Galaxy Commander";
  theme="LEGO/SYSTEM/Space/Classic";
  year=1983;
  home="http://guide.lugnet.com/set/6980_1";
  pieces=size galaxy_commander_parts;
  minifigs=5}
in (galaxy_commander_info,galaxy_commander_parts: model);;
let set_6980_1 = galaxy_commander;;


let cosmic_fleet_voyager =
  let cosmic_fleet_voyager_parts = make
  [
  ("3957",TrRed), 2;
  ("3956",White), 1;
  ("4732",White), 2;
  ("4588",White), 2;
  ("3062b",TrRed), 4;
  ("4070",Blue), 14;
  ("3004",Blue), 20;
  ("3004p90",Blue), 2;
  ("3004p01",Blue), 2;
  ("4595",Blue), 4;
  ("3622",Blue), 14;
  ("3010",Blue), 5;
  ("3010p04",Blue), 2;
  ("3066",TrYellow), 2;
  ("3009",Blue), 2;
  ("3008",Blue), 2;
  ("3941",TrYellow), 6;
  ("4730",Blue), 3;
  ("4730",OldGray), 2;
  ("3002",Blue), 2;
  ("3001",Blue), 1;
  ("4589",White), 2;
  ("4589",TrRed), 4;
  ("3943",White), 2;
  ("4448",Blue), 6;
  ("4448",TrYellow), 6;
  ("3937",Blue), 2;
  ("3938",Blue), 2;
  ("4213",Blue), 5;
  ("4315",Blue), 6;
  ("4625",Blue), 1;
  ("73590a",White), 2;
  ("3838",Black), 1;
  ("3838",Red), 1;
  ("3838",Yellow), 1;
  ("3838",White), 1;
  ("4360",White), 1;
  ("193b",Black), 1;
  ("193b",Red), 1;
  ("193b",Yellow), 1;
  ("193b",White), 1;
  ("3962a",Black), 1;
  ("3626ap01",Yellow), 4;
  ("970c00",Black), 1;
  ("970c00",Red), 1;
  ("970c00",Yellow), 1;
  ("970c00",White), 1;
  ("4479",Black), 1;
  ("3837",Black), 1;
  ("3900",Black), 1;
  ("3841",Black), 1;
  ("973p90",Black), 1;
  ("973p90",Red), 1;
  ("973p90",Yellow), 1;
  ("973p90",White), 1;
  ("4215a",TrYellow), 6;
  ("3024",Blue), 2;
  ("3024",OldGray), 2;
  ("3024",TrRed), 4;
  ("4085a",OldGray), 6;
  ("3023",Blue), 16;
  ("3023",White), 6;
  ("3475b",Black), 4;
  ("3623",Blue), 14;
  ("3710",Blue), 3;
  ("3666",Blue), 4;
  ("3460",Blue), 4;
  ("3022",Blue), 3;
  ("3022",OldGray), 2;
  ("3022",White), 1;
  ("4600",OldGray), 2;
  ("3021",Blue), 2;
  ("3021",OldGray), 3;
  ("3020",Blue), 2;
  ("3020",White), 2;
  ("3795",Blue), 1;
  ("3795",White), 2;
  ("3034",Blue), 1;
  ("3034",OldGray), 1;
  ("3034",White), 1;
  ("3832",Blue), 3;
  ("3832",White), 2;
  ("3032",Blue), 2;
  ("3030",White), 1;
  ("3030",TrYellow), 2;
  ("3029",White), 2;
  ("3958",White), 1;
  ("3036",Blue), 1;
  ("3036",White), 1;
  ("3028",White), 1;
  ("4740",TrRed), 3;
  ("4285a",Blue), 1;
  ("4286",Blue), 2;
  ("4287",Blue), 2;
  ("3298",Blue), 3;
  ("3747",Blue), 1;
  ("3939",TrYellow), 1;
  ("3040b",Blue), 16;
  ("3665",Blue), 20;
  ("3039",Blue), 4;
  ("3660",Blue), 4;
  ("3676",Blue), 4;
  ("3039p32",Blue), 1;
  ("3039p34",Blue), 1;
  ("3039p23",Blue), 1;
  ("4460",Blue), 2;
  ("3684",Blue), 2;
  ("2342",OldGray), 1;
  ("2342",White), 1;
  ("2336p35",Blue), 1;
  ("3940",Black), 6;
  ("4741",Blue), 6;
  ("4737",Blue), 6;
  ("2340",White), 4;
  ("4746",Blue), 2;
  ("3706",Black), 2;
  ("3700",Blue), 5;
  ("3700",OldGray), 2;
  ("3895",Blue), 2;
  ("3703",Blue), 2;
  ("3070b",TrRed), 2;
  ("3069bp25",Blue), 2;
  ("3069b",Blue), 8;
  ("3069b",OldGray), 2;
  ("3069bp06",Blue), 2;
  ("3068b",Blue), 2;
  ("3641",Black), 4;
  ("4624",OldGray), 4;
  ("4474",Blue), 1;
  ("4474",TrYellow), 1;
  ("3936",White), 3;
  ("3935",White), 3;
  ("3933",White), 1;
  ("3934",White), 1;
  ]
in let cosmic_fleet_voyager_info =
 {name="Cosmic Fleet Voyager";
  theme="LEGO/SYSTEM/Space/Classic";
  year=1986;
  home="http://guide.lugnet.com/set/6985_1";
  pieces=size cosmic_fleet_voyager_parts;
  minifigs=4}
in (cosmic_fleet_voyager_info,cosmic_fleet_voyager_parts: model);;
let set_6985_1 = cosmic_fleet_voyager;;


let space_scooter_885 =
  let space_scooter_parts = make
  [
  ("3957",OldGray), 1;
  ("3062a",TrBlue), 2;
  ("3829",OldGray), 1;
  ("3633",OldGray), 1;
  ("3838",Red), 1;
  ("193a",Red), 1;
  ("3626ap01",Yellow), 1;
  ("970c00",Red), 1;
  ("973p90",Red), 1;
  ("3024",TrRed), 2;
  ("3839a",OldGray), 1;
  ("3460",OldGray), 1;
  ("3022",OldGray), 2;
  ("3034",OldGray), 1;
  ("3298p90",OldGray), 1;
  ("3933",OldGray), 1;
  ("3934",OldGray), 1;
  ]
in let space_scooter_info =
 {name="Space Scooter";
  theme="LEGO/SYSTEM/Space/Classic";
  year=1978;
  home="http://guide.lugnet.com/set/885_1";
  pieces=size space_scooter_parts;
  minifigs=1}
in (space_scooter_info,space_scooter_parts: model);;
let set_885_1 = space_scooter_885;;


let space_buggy =
  let space_buggy_parts = make
  [
  ("3957",OldGray), 1;
  ("3062a",TrGreen), 1;
  ("3829",OldGray), 1;
  ("3838",OldGray), 1;
  ("3838",White), 1;
  ("193a",White), 1;
  ("3959",OldGray), 1;
  ("3626ap01",Yellow), 1;
  ("970c00",White), 1;
  ("973p90",White), 1;
  ("3794",OldGray), 1;
  ("122c01",OldGray), 2;
  ("3020",OldGray), 1;
  ("3795",OldGray), 1;
  ("3039",OldGray), 1;
  ("3641",Black), 4;
  ]
in let space_buggy_info =
 {name="Space Buggy";
  theme="LEGO/SYSTEM/Space/Classic";
  year=1979;
  home="http://guide.lugnet.com/set/886_1";
  pieces=size space_buggy_parts;
  minifigs=1}
in (space_buggy_info,space_buggy_parts: model);;
let set_886_1 = space_buggy;;


let radar_truck =
  let radar_truck_parts = make
  [
  ("3956",OldGray), 1;
  ("3787",OldGray), 2;
  ("3829",OldGray), 1;
  ("3937",OldGray), 1;
  ("3938",OldGray), 1;
  ("3838",Red), 1;
  ("3838",OldGray), 1;
  ("193a",Red), 1;
  ("3959",OldGray), 1;
  ("3626ap01",Yellow), 1;
  ("970c00",Red), 1;
  ("973p90",Red), 1;
  ("3024",OldGray), 1;
  ("3023",OldGray), 2;
  ("3794",OldGray), 1;
  ("3022",OldGray), 1;
  ("122c01",OldGray), 2;
  ("3021",OldGray), 2;
  ("3020",OldGray), 1;
  ("3795",OldGray), 1;
  ("3960",OldGray), 1;
  ("3641",Black), 4;
  ]
in let radar_truck_info =
 {name="Radar Truck";
  theme="LEGO/SYSTEM/Space/Classic";
  year=1979;
  home="http://guide.lugnet.com/set/889_1";
  pieces=size radar_truck_parts;
  minifigs=1}
in (radar_truck_info,radar_truck_parts: model);;
let set_889_1 = radar_truck;;


let space_transport =
  let space_transport_parts = make
  [
  ("3957",OldGray), 1;
  ("3956",Blue), 1;
  ("3005",Blue), 2;
  ("3004",Blue), 2;
  ("3622",Blue), 2;
  ("3010",Blue), 3;
  ("3010p41",OldGray), 1;
  ("3010p918",Blue), 2;
  ("3963",OldGray), 2;
  ("3941",OldGray), 1;
  ("3829",OldGray), 1;
  ("3943a",OldGray), 1;
  ("3822",OldGray), 1;
  ("3821",OldGray), 1;
  ("3937",Blue), 2;
  ("3938",Blue), 2;
  ("3838",Red), 1;
  ("193a",Red), 1;
  ("3626ap01",Yellow), 1;
  ("970c00",Red), 1;
  ("973p90",Red), 1;
  ("3024",OldGray), 2;
  ("3024",TrGreen), 2;
  ("3024",TrRed), 2;
  ("3023",OldGray), 4;
  ("3839a",OldGray), 1;
  ("3710",Blue), 2;
  ("3666",OldGray), 2;
  ("3022",OldGray), 1;
  ("3021",OldGray), 2;
  ("3020",Blue), 1;
  ("3020",OldGray), 2;
  ("3795",Blue), 1;
  ("3795",OldGray), 1;
  ("3034",OldGray), 3;
  ("3832",OldGray), 1;
  ("3031",Blue), 1;
  ("3032",TrYellow), 1;
  ("3035",OldGray), 1;
  ("3939",TrYellow), 1;
  ("3939p91",Blue), 1;
  ("3660",Blue), 2;
  ("3660",OldGray), 10;
  ("3940",OldGray), 3;
  ("3479",OldGray), 1;
  ("3069b",Blue), 2;
  ("3933",OldGray), 3;
  ("3934",OldGray), 3;
  ]
in let space_transport_info =
 {name="Space Transport";
  theme="LEGO/SYSTEM/Space/Classic";
  year=1978;
  home="http://guide.lugnet.com/set/918_1";
  pieces=size space_transport_parts;
  minifigs=1}
in (space_transport_info,space_transport_parts: model);;
let set_918_1 = space_transport;;


let catalog = ([
  (* 1498-1 *) spy_bot;
  (* 1499-1 *) twin_starfire;
  (* 1526-1 *)
  (* 1557-1 *) space_scooter_1557;
  (* 1558-1 *) mobile_command_trailer;
  (* 1580-1 *) lunar_scout;
  (* 1593-1 *) unnamed_1593;
  (* 1968-1 *) unnamed_1968;
  (*  442-1 *) space_shuttle;            (* 891-1 *)
  (*  452-1 *) mobile_tracking_station;  (* 894-1 *)
  (*  462-1 *) rocket_launcher;          (* 897-1 *)
  (*  483-1 *) alpha1_rocket_base;       (* 920-2 *)
  (*  487-1 *) space_cruiser;            (* 924-1 *)
  (*  493-1 *) space_command_center;     (* 926-1 *)
  (*  497-1 *) galaxy_explorer;          (* 928-1 *)
  (* 6750-1 *) light_sound_sonic_robot;
  (* 6780-1 *) light_sound_xt_starship;
  (* 6783-1 *) sonar_transmitting_cruiser;
  (* 6801-1 *) rocket_sled;
  (* 6802-1 *) space_probe;
  (* 6803-1 *) space_patrol;
  (* 6804-1 *) surface_rover;
  (* 6805-1 *) astro_dasher;
  (* 6806-1 *) surface_hopper;
  (* 6807-1 *) unnamed_6807;
  (* 6808-1 *) galaxy_trekkor;
  (* 6809-1 *) xt5_and_droid;
  (* 6820-1 *) starfire1;
  (* 6821-1 *) shovel_buggy;
  (* 6822-1 *) space_shuttle;
  (* 6823-1 *) surface_transport;
  (* 6824-1 *) space_dart1;
  (* 6825-1 *) cosmic_comet;
  (* 6826-1 *) crater_crawler;
  (* 6827-1 *) strata_scooter;
  (* 6841-1 *) mineral_detector;
  (* 6842-1 *) shuttle_craft;
  (* 6844-1 *) seismologic_vehicle;
  (* 6845-1 *) cosmic_charger;
  (* 6846-1 *) tri_star_voyager;
  (* 6847-1 *) space_dozer;
  (* 6848-2 *) interplanetary_shuttle;
  (* 6849-1 *) satellite_patroller;
  (* 6861-1 *) x1_patrol_craft;
  (* 6870-1 *) space_probe_launcher;
  (* 6871-1 *) star_patrol_launcher;
  (* 6872-1 *) lunar_patrol_craft;
  (* 6874-1 *) moonrover;
  (* 6880-1 *) surface_explorer;
  (* 6881-1 *) lunar_rocket_launcher;
  (* 6882-1 *) walking_astro_grappler;
  (* 6883-1 *) terrestrial_rover;
  (* 6890-1 *) cosmic_cruiser;
  (* 6891-1 *) gamma_v_laser_craft;
  (* 6892-1 *) modular_space_transport;
  (* 6901-1 *) mobile_lab;
  (* 6926-1 *) mobile_recovery_vehicle;
  (* 6927-1 *) all_terrain_vehicle;
  (* 6928-1 *) uranium_search_vehicle;
  (* 6929-1 *) starfleet_voyager;
  (* 6930-1 *) space_supply_station;
  (* 6931-1 *) fx_star_patroller;
  (* 6940-1 *) alien_moon_stalker;
  (* 6950-1 *) mobile_rocket_transport;
  (* 6951-1 *) robot_command_center;
  (* 6952-1 *) solar_power_transporter;
  (* 6970-1 *) beta1_command_base;
  (* 6971-1 *) intergalactic_command_base;
  (* 6972-1 *) polaris1_space_lab;
  (* 6980-1 *) galaxy_commander;
  (* 6985-1 *) cosmic_fleet_voyager;
  (*  885-1 *) space_scooter_885;
  (*  886-1 *) space_buggy;
  (*  889-1 *) radar_truck;
  (*  918-1 *) space_transport;
  ]:catalog);;

end;;

Enfin, dernière opération, nous allons connaître la liste des boîtes à acheter et grâce auxquelles il nous manquera moins de 180 briques sur les 777 nécessaires :

 
Sélectionnez
# open LegoBricks;;
# let my_order = collect ChoamFrigate.parts LegoSpace.catalog 180;;
val my_order&#160;: LegoBricks.order =
  {Inventory.items =
    [({name = "Cosmic Charger"; theme = "LEGO/SYSTEM/Space/Classic";
       year = 1986; home = "http://guide.lugnet.com/set/6845_1"; pieces = 53;
       minifigs = 1},
      1);
     ({name = "Cosmic Fleet Voyager"; theme = "LEGO/SYSTEM/Space/Classic";
       year = 1986; home = "http://guide.lugnet.com/set/6985_1";
       pieces = 412; minifigs = 4},
      1);
     ({name = "Intergalactic Command Base";
       theme = "LEGO/SYSTEM/Space/Classic"; year = 1984;
       home = "http://guide.lugnet.com/set/6971_1"; pieces = 328;
       minifigs = 3},
      1);
     ({name = "Light & Sound XT - Starship";
       theme = "LEGO/SYSTEM/Space/Classic"; year = 1987;
       home = "http://guide.lugnet.com/set/6780_1"; pieces = 204;
       minifigs = 1},
      1);
     ({name = "Lunar Rocket Launcher"; theme = "LEGO/SYSTEM/Space/Classic";
       year = 1984; home = "http://guide.lugnet.com/set/6881_1"; pieces = 98;
       minifigs = 1},
      1);
     ({name = "Mobile Recovery Vehicle"; theme = "LEGO/SYSTEM/Space/Classic";
       year = 1986; home = "http://guide.lugnet.com/set/6926_1";
       pieces = 150; minifigs = 2},
      1);
     ({name = "Modular Space Transport"; theme = "LEGO/SYSTEM/Space/Classic";
       year = 1986; home = "http://guide.lugnet.com/set/6892_1";
       pieces = 150; minifigs = 2},
      1);
     ({name = "Sonar Transmitting Cruiser";
       theme = "LEGO/SYSTEM/Space/Classic"; year = 1988;
       home = "http://guide.lugnet.com/set/6783_1"; pieces = 354;
       minifigs = 2},
      1);
     ({name = "Space Dart-I"; theme = "LEGO/SYSTEM/Space/Classic";
       year = 1984; home = "http://guide.lugnet.com/set/6824_1"; pieces = 48;
       minifigs = 1},
      1);
     ({name = "Space Shuttle"; theme = "LEGO/SYSTEM/Space/Classic";
       year = 1981; home = "http://guide.lugnet.com/set/6822_1"; pieces = 33;
       minifigs = 1},
      2);
     ({name = "Walking Astro Grappler"; theme = "LEGO/SYSTEM/Space/Classic";
       year = 1985; home = "http://guide.lugnet.com/set/6882_1"; pieces = 94;
       minifigs = 1},
      1)];
   Inventory.missing =
    [(("2342", Blue), 3); (("2412b", OldGray), 8); (("3001", Blue), 14);
     (("3002", Blue), 9); (("3003", Blue), 2); (("3004p06", Blue), 2);
     (("3006", Blue), 1); (("3007", Blue), 3); (("3009", Blue), 2);
     (("30116", OldGray), 4); (("3020", Blue), 7); (("3022", Black), 3);
     (("3028", Blue), 2); (("3029", Blue), 2); (("3030", Blue), 2);
     (("3030", White), 1); (("3032", Blue), 2); (("3032", White), 2);
     (("3034", White), 9); (("3035", Blue), 1); (("3036", White), 1);
     (("30363", Blue), 4); (("3039", Blue), 3); (("3039p05", Blue), 2);
     (("3039p32", Blue), 1); (("3039p32", OldGray), 4); (("3068b", Blue), 1);
     (("3070b", Blue), 4); (("3070b", TrRed), 2); (("3710", Black), 4);
     (("3795", Blue), 6); (("3832", Blue), 3); ((...), ...); ...];
   Inventory.extras = ...}

La réponse désigne 11 boîtes (cliquez sur les liens soulignés pour voir ces boîtes), la boîte 6822: Space Shuttle étant présente en double exemplaire cela nous fait un total de 12 boîtes.

Combien de briques nous manquera-t-il avec ces 12 boîtes ?

 
Sélectionnez
# size my_order.Inventory.missing;;
-&#160;: int = 172

C'est effectivement un peu mieux que 180 briques.
Et combien de briques "en trop" ?

 
Sélectionnez
# size my_order.Inventory.extras;;
-&#160;: int = 1352

Ce nombre peut paraître élevé, mais pour qui connaît les legos il est en fait très raisonnable, car le prix des briques au détail est bien supérieur au double du prix des briques en boîte. Et puis ce nombre inclut les pièces des minifigurines qui peupleront notre vaisseau de frêt et les pièces qui serviront à fabriquer les véhicules qu'il transportera d'une planète à une autre, on n'a jamais trop de legos…


précédentsommairesuivant

Vous avez aimé ce tutoriel ? Alors partagez-le en cliquant sur les boutons suivants : Viadeo Twitter Facebook Share on Google+   

  

Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright © 2013 Damien Guichard. Aucune reproduction, même partielle, ne peut être faite de ce site ni de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.