<?xml version="1.0" encoding="utf-8"?>
<SerializableScraperProject xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <Version>21</Version>
  <Assignments>
    <Code>Main = {&#xD;
	Setup -&gt; { startingUrl maxPages }&#xD;
	(Browser.Load {&#xD;
		startingUrl&#xD;
	})&#xD;
	(Sequence.Take {&#xD;
		maxPages&#xD;
	} {&#xD;
		(Browser.TurnPages {&#xD;
			Select.NextButton&#xD;
		})&#xD;
	})&#xD;
	Select.ProductLink&#xD;
	Browser.Navigate&#xD;
	(@Core.Unit #{&#xD;
		url: {&#xD;
			Gather.URL&#xD;
		}&#xD;
		title: {&#xD;
			Select.ProductTitle&#xD;
		}&#xD;
		stars: {&#xD;
			Select.Stars&#xD;
			Gather.Number&#xD;
		}&#xD;
		seller: {&#xD;
			Select.Seller&#xD;
		}&#xD;
		reviews: {&#xD;
			Select.ReviewCount&#xD;
			Gather.Number&#xD;
		}&#xD;
		price: {&#xD;
			Select.Price&#xD;
		}&#xD;
		newPrice: {&#xD;
			Select.NewPrice&#xD;
			Gather.Number&#xD;
		}&#xD;
		image: {&#xD;
			Select.Image&#xD;
			Gather.Src&#xD;
		}&#xD;
		availability: {&#xD;
			Select.Availability&#xD;
		}&#xD;
		delivery: {&#xD;
			Select.DeliveryMessage&#xD;
		}&#xD;
		description: {&#xD;
			Select.Description&#xD;
		}&#xD;
		features: {&#xD;
			Select.DetailBulletsFeatures&#xD;
			(@Core.Unit #{&#xD;
				feature: {&#xD;
					Gather.Text&#xD;
				}&#xD;
			})&#xD;
		}&#xD;
		detailsBullets: {&#xD;
			Select.DetailBullets&#xD;
			(@Core.Unit #{&#xD;
				name: {&#xD;
					Gather.TechnicalSpecificationName&#xD;
				}&#xD;
				value: {&#xD;
					Gather.TechnicalSpecificationValue&#xD;
				}&#xD;
			})&#xD;
		}&#xD;
		technicalSpecifications: {&#xD;
			Select.TechnicalSpecifications&#xD;
			(@Core.Unit #{&#xD;
				name: {&#xD;
					Gather.TechnicalSpecificationName&#xD;
				}&#xD;
				value: {&#xD;
					Gather.TechnicalSpecificationValue&#xD;
				}&#xD;
			})&#xD;
		}&#xD;
	})&#xD;
}&#xD;
Setup = {&#xD;
	(@Core.Unit #{&#xD;
		startingUrl: {&#xD;
			"https://www.amazon.com/s?rh=n%3A7141123011%2Cn%3A7147441011%2Cn%3A6358539011%2Cn%3A6358540011&amp;page=2&amp;qid=1563225246&amp;ref=lp_6358540011_pg_2"&#xD;
		}&#xD;
		maxPages: {&#xD;
			4&#xD;
		}&#xD;
	})&#xD;
}</Code>
  </Assignments>
  <TextGatherers />
  <Code>
    <Code />
  </Code>
  <HorizontalDatabase>
    <Schema xsi:type="SerializableObjectType">
      <Members>
        <SerializableObjectMember>
          <Name>Main</Name>
          <Type xsi:type="SerializableListType">
            <ItemType xsi:type="SerializableObjectType">
              <Members>
                <SerializableObjectMember>
                  <Name>url</Name>
                  <Type xsi:type="SerializableListType">
                    <ItemType xsi:type="SerializableSimpleType">
                      <Kind>String</Kind>
                    </ItemType>
                  </Type>
                </SerializableObjectMember>
                <SerializableObjectMember>
                  <Name>title</Name>
                  <Type xsi:type="SerializableListType">
                    <ItemType xsi:type="SerializableSimpleType">
                      <Kind>String</Kind>
                    </ItemType>
                  </Type>
                </SerializableObjectMember>
                <SerializableObjectMember>
                  <Name>stars</Name>
                  <Type xsi:type="SerializableListType">
                    <ItemType xsi:type="SerializableSimpleType">
                      <Kind>String</Kind>
                    </ItemType>
                  </Type>
                </SerializableObjectMember>
                <SerializableObjectMember>
                  <Name>seller</Name>
                  <Type xsi:type="SerializableListType">
                    <ItemType xsi:type="SerializableSimpleType">
                      <Kind>String</Kind>
                    </ItemType>
                  </Type>
                </SerializableObjectMember>
                <SerializableObjectMember>
                  <Name>reviews</Name>
                  <Type xsi:type="SerializableListType">
                    <ItemType xsi:type="SerializableSimpleType">
                      <Kind>String</Kind>
                    </ItemType>
                  </Type>
                </SerializableObjectMember>
                <SerializableObjectMember>
                  <Name>price</Name>
                  <Type xsi:type="SerializableListType">
                    <ItemType xsi:type="SerializableSimpleType">
                      <Kind>String</Kind>
                    </ItemType>
                  </Type>
                </SerializableObjectMember>
                <SerializableObjectMember>
                  <Name>newPrice</Name>
                  <Type xsi:type="SerializableListType">
                    <ItemType xsi:type="SerializableSimpleType">
                      <Kind>String</Kind>
                    </ItemType>
                  </Type>
                </SerializableObjectMember>
                <SerializableObjectMember>
                  <Name>image</Name>
                  <Type xsi:type="SerializableListType">
                    <ItemType xsi:type="SerializableSimpleType">
                      <Kind>String</Kind>
                    </ItemType>
                  </Type>
                </SerializableObjectMember>
                <SerializableObjectMember>
                  <Name>availability</Name>
                  <Type xsi:type="SerializableListType">
                    <ItemType xsi:type="SerializableSimpleType">
                      <Kind>String</Kind>
                    </ItemType>
                  </Type>
                </SerializableObjectMember>
                <SerializableObjectMember>
                  <Name>delivery</Name>
                  <Type xsi:type="SerializableListType">
                    <ItemType xsi:type="SerializableSimpleType">
                      <Kind>String</Kind>
                    </ItemType>
                  </Type>
                </SerializableObjectMember>
                <SerializableObjectMember>
                  <Name>description</Name>
                  <Type xsi:type="SerializableListType">
                    <ItemType xsi:type="SerializableSimpleType">
                      <Kind>String</Kind>
                    </ItemType>
                  </Type>
                </SerializableObjectMember>
                <SerializableObjectMember>
                  <Name>features</Name>
                  <Type xsi:type="SerializableListType">
                    <ItemType xsi:type="SerializableObjectType">
                      <Members>
                        <SerializableObjectMember>
                          <Name>feature</Name>
                          <Type xsi:type="SerializableListType">
                            <ItemType xsi:type="SerializableSimpleType">
                              <Kind>String</Kind>
                            </ItemType>
                          </Type>
                        </SerializableObjectMember>
                      </Members>
                    </ItemType>
                  </Type>
                </SerializableObjectMember>
                <SerializableObjectMember>
                  <Name>detailsBullets</Name>
                  <Type xsi:type="SerializableListType">
                    <ItemType xsi:type="SerializableObjectType">
                      <Members>
                        <SerializableObjectMember>
                          <Name>name</Name>
                          <Type xsi:type="SerializableListType">
                            <ItemType xsi:type="SerializableSimpleType">
                              <Kind>String</Kind>
                            </ItemType>
                          </Type>
                        </SerializableObjectMember>
                        <SerializableObjectMember>
                          <Name>value</Name>
                          <Type xsi:type="SerializableListType">
                            <ItemType xsi:type="SerializableSimpleType">
                              <Kind>String</Kind>
                            </ItemType>
                          </Type>
                        </SerializableObjectMember>
                      </Members>
                    </ItemType>
                  </Type>
                </SerializableObjectMember>
                <SerializableObjectMember>
                  <Name>technicalSpecifications</Name>
                  <Type xsi:type="SerializableListType">
                    <ItemType xsi:type="SerializableObjectType">
                      <Members>
                        <SerializableObjectMember>
                          <Name>name</Name>
                          <Type xsi:type="SerializableListType">
                            <ItemType xsi:type="SerializableSimpleType">
                              <Kind>String</Kind>
                            </ItemType>
                          </Type>
                        </SerializableObjectMember>
                        <SerializableObjectMember>
                          <Name>value</Name>
                          <Type xsi:type="SerializableListType">
                            <ItemType xsi:type="SerializableSimpleType">
                              <Kind>String</Kind>
                            </ItemType>
                          </Type>
                        </SerializableObjectMember>
                      </Members>
                    </ItemType>
                  </Type>
                </SerializableObjectMember>
              </Members>
            </ItemType>
          </Type>
        </SerializableObjectMember>
      </Members>
    </Schema>
  </HorizontalDatabase>
  <Kinds>
    <SerializableNamedPairOfString>
      <Name>Availability</Name>
      <Value>{&#xD;
  "classes1": {&#xD;
    "val": "a-section a-spacing-top-micro"&#xD;
  },&#xD;
  "visible": {&#xD;
    "val": true&#xD;
  },&#xD;
  "classes2": {&#xD;
    "val": "feature"&#xD;
  },&#xD;
  "font": {&#xD;
    "val": "\"Amazon Ember\", Arial, sans-serif"&#xD;
  },&#xD;
  "childrenLen": {&#xD;
    "val": 1&#xD;
  },&#xD;
  "id": {&#xD;
    "val": "availability"&#xD;
  },&#xD;
  "tag": {&#xD;
    "val": "DIV"&#xD;
  },&#xD;
  "id2": {&#xD;
    "val": "availabilityInsideBuyBox_feature_div"&#xD;
  },&#xD;
  "tag3": {&#xD;
    "val": "DIV"&#xD;
  },&#xD;
  "class3": {&#xD;
    "a-section": true,&#xD;
    "a-spacing-none": true,&#xD;
    "a-padding-none": true&#xD;
  },&#xD;
  "color": {&#xD;
    "val": "rgb(17, 17, 17)"&#xD;
  },&#xD;
  "tag2": {&#xD;
    "val": "DIV"&#xD;
  },&#xD;
  "id1": {&#xD;
    "val": ""&#xD;
  },&#xD;
  "classes": {&#xD;
    "val": "a-section a-spacing-base"&#xD;
  },&#xD;
  "class": {&#xD;
    "a-section": true,&#xD;
    "a-spacing-base": true&#xD;
  },&#xD;
  "classes3": {&#xD;
    "val": "a-section a-spacing-none a-padding-none"&#xD;
  },&#xD;
  "tag1": {&#xD;
    "val": "DIV"&#xD;
  },&#xD;
  "id3": {&#xD;
    "val": ""&#xD;
  },&#xD;
  "class1": {&#xD;
    "a-section": true,&#xD;
    "a-spacing-top-micro": true&#xD;
  },&#xD;
  "class2": {&#xD;
    "feature": true&#xD;
  },&#xD;
  "_tolerance": {&#xD;
    "val": 0.044&#xD;
  }&#xD;
}</Value>
    </SerializableNamedPairOfString>
    <SerializableNamedPairOfString>
      <Name>DeliveryMessage</Name>
      <Value>{&#xD;
  "classes1": {&#xD;
    "val": "a-section a-spacing-none"&#xD;
  },&#xD;
  "visible": {&#xD;
    "val": true&#xD;
  },&#xD;
  "classes2": {&#xD;
    "val": "a-section a-spacing-none"&#xD;
  },&#xD;
  "font": {&#xD;
    "val": "\"Amazon Ember\", Arial, sans-serif"&#xD;
  },&#xD;
  "childrenLen": {&#xD;
    "val": 3&#xD;
  },&#xD;
  "id": {&#xD;
    "val": "delivery-message"&#xD;
  },&#xD;
  "tag": {&#xD;
    "val": "DIV"&#xD;
  },&#xD;
  "id2": {&#xD;
    "val": "fast-track-message"&#xD;
  },&#xD;
  "tag3": {&#xD;
    "val": "DIV"&#xD;
  },&#xD;
  "class3": {&#xD;
    "a-section": true,&#xD;
    "a-spacing-none": true&#xD;
  },&#xD;
  "color": {&#xD;
    "val": "rgb(17, 17, 17)"&#xD;
  },&#xD;
  "tag2": {&#xD;
    "val": "DIV"&#xD;
  },&#xD;
  "id1": {&#xD;
    "val": ""&#xD;
  },&#xD;
  "classes": {&#xD;
    "val": "a-section a-spacing-none a-spacing-top-mini"&#xD;
  },&#xD;
  "class": {&#xD;
    "a-section": true,&#xD;
    "a-spacing-none": true,&#xD;
    "a-spacing-top-mini": true&#xD;
  },&#xD;
  "classes3": {&#xD;
    "val": "a-section a-spacing-none"&#xD;
  },&#xD;
  "tag1": {&#xD;
    "val": "DIV"&#xD;
  },&#xD;
  "id3": {&#xD;
    "val": "fast-track"&#xD;
  },&#xD;
  "class1": {&#xD;
    "a-section": true,&#xD;
    "a-spacing-none": true&#xD;
  },&#xD;
  "class2": {&#xD;
    "a-section": true,&#xD;
    "a-spacing-none": true&#xD;
  },&#xD;
  "_tolerance": {&#xD;
    "val": 0.044&#xD;
  }&#xD;
}</Value>
    </SerializableNamedPairOfString>
    <SerializableNamedPairOfString>
      <Name>Description</Name>
      <Value>{&#xD;
  "classes1": {&#xD;
    "val": "a-row feature"&#xD;
  },&#xD;
  "visible": {&#xD;
    "val": true&#xD;
  },&#xD;
  "classes2": {&#xD;
    "val": "feature"&#xD;
  },&#xD;
  "font": {&#xD;
    "val": "\"Amazon Ember\", Arial, sans-serif"&#xD;
  },&#xD;
  "id": {&#xD;
    "val": "productDescription"&#xD;
  },&#xD;
  "tag": {&#xD;
    "val": "DIV"&#xD;
  },&#xD;
  "tag3": {&#xD;
    "val": "DIV"&#xD;
  },&#xD;
  "class3": {&#xD;
    "a-section": true,&#xD;
    "a-spacing-extra-large": true&#xD;
  },&#xD;
  "color": {&#xD;
    "val": "rgb(51, 51, 51)"&#xD;
  },&#xD;
  "tag2": {&#xD;
    "val": "DIV"&#xD;
  },&#xD;
  "id1": {&#xD;
    "val": "productDescription_feature_div"&#xD;
  },&#xD;
  "classes": {&#xD;
    "val": "a-section a-spacing-small"&#xD;
  },&#xD;
  "class": {&#xD;
    "a-section": true,&#xD;
    "a-spacing-small": true&#xD;
  },&#xD;
  "classes3": {&#xD;
    "val": "a-section a-spacing-extra-large"&#xD;
  },&#xD;
  "tag1": {&#xD;
    "val": "DIV"&#xD;
  },&#xD;
  "prevText": {&#xD;
    "val": "Product description"&#xD;
  },&#xD;
  "id3": {&#xD;
    "val": "descriptionAndDetails"&#xD;
  },&#xD;
  "class1": {&#xD;
    "a-row": true,&#xD;
    "feature": true&#xD;
  },&#xD;
  "class2": {&#xD;
    "feature": true&#xD;
  },&#xD;
  "_tolerance": {&#xD;
    "val": 0.044&#xD;
  }&#xD;
}</Value>
    </SerializableNamedPairOfString>
    <SerializableNamedPairOfString>
      <Name>DetailBullets</Name>
      <Value>{&#xD;
  "classes1": {&#xD;
    "val": ""&#xD;
  },&#xD;
  "visible": {&#xD;
    "val": true&#xD;
  },&#xD;
  "classes2": {&#xD;
    "val": "a-keyvalue prodDetTable"&#xD;
  },&#xD;
  "font": {&#xD;
    "val": "\"Amazon Ember\", Arial, sans-serif"&#xD;
  },&#xD;
  "childrenLen": {&#xD;
    "val": 2&#xD;
  },&#xD;
  "id": {&#xD;
    "val": ""&#xD;
  },&#xD;
  "tag": {&#xD;
    "val": "TR"&#xD;
  },&#xD;
  "id2": {&#xD;
    "val": "productDetails_detailBullets_sections1"&#xD;
  },&#xD;
  "tag3": {&#xD;
    "val": "DIV"&#xD;
  },&#xD;
  "class3": {&#xD;
    "a-section": true,&#xD;
    "table-padding": true&#xD;
  },&#xD;
  "color": {&#xD;
    "val": "rgb(17, 17, 17)"&#xD;
  },&#xD;
  "tag2": {&#xD;
    "val": "TABLE"&#xD;
  },&#xD;
  "id1": {&#xD;
    "val": ""&#xD;
  },&#xD;
  "classes": {&#xD;
    "val": ""&#xD;
  },&#xD;
  "classes3": {&#xD;
    "val": "a-section table-padding"&#xD;
  },&#xD;
  "tag1": {&#xD;
    "val": "TBODY"&#xD;
  },&#xD;
  "id3": {&#xD;
    "val": ""&#xD;
  },&#xD;
  "class2": {&#xD;
    "a-keyvalue": true,&#xD;
    "prodDetTable": true&#xD;
  },&#xD;
  "_tolerance": {&#xD;
    "val": 0.044&#xD;
  }&#xD;
}</Value>
    </SerializableNamedPairOfString>
    <SerializableNamedPairOfString>
      <Name>DetailBulletsFeatures</Name>
      <Value>{&#xD;
  "classes1": {&#xD;
    "val": ""&#xD;
  },&#xD;
  "visible": {&#xD;
    "val": true&#xD;
  },&#xD;
  "font": {&#xD;
    "val": "\"Amazon Ember\", Arial, sans-serif"&#xD;
  },&#xD;
  "id": {&#xD;
    "val": ""&#xD;
  },&#xD;
  "tag": {&#xD;
    "val": "SPAN"&#xD;
  },&#xD;
  "id2": {&#xD;
    "val": ""&#xD;
  },&#xD;
  "tag3": {&#xD;
    "val": "DIV"&#xD;
  },&#xD;
  "color": {&#xD;
    "val": "rgb(17, 17, 17)"&#xD;
  },&#xD;
  "tag2": {&#xD;
    "val": "UL"&#xD;
  },&#xD;
  "id1": {&#xD;
    "val": ""&#xD;
  },&#xD;
  "classes": {&#xD;
    "val": "a-list-item"&#xD;
  },&#xD;
  "class": {&#xD;
    "a-list-item": true&#xD;
  },&#xD;
  "tag1": {&#xD;
    "val": "LI"&#xD;
  },&#xD;
  "class2": {&#xD;
    "a-unordered-list": true,&#xD;
    "a-vertical": true,&#xD;
    "a-spacing-none": true&#xD;
  },&#xD;
  "_tolerance": {&#xD;
    "val": 0.044&#xD;
  }&#xD;
}</Value>
    </SerializableNamedPairOfString>
    <SerializableNamedPairOfString>
      <Name>Image</Name>
      <Value>{&#xD;
  "classes1": {&#xD;
    "val": "imgTagWrapper"&#xD;
  },&#xD;
  "visible": {&#xD;
    "val": true&#xD;
  },&#xD;
  "classes2": {&#xD;
    "val": "a-declarative"&#xD;
  },&#xD;
  "font": {&#xD;
    "val": "\"Amazon Ember\", Arial, sans-serif"&#xD;
  },&#xD;
  "childrenLen": {&#xD;
    "val": 0&#xD;
  },&#xD;
  "id": {&#xD;
    "val": "landingImage"&#xD;
  },&#xD;
  "tag": {&#xD;
    "val": "IMG"&#xD;
  },&#xD;
  "id2": {&#xD;
    "val": ""&#xD;
  },&#xD;
  "tag3": {&#xD;
    "val": "SPAN"&#xD;
  },&#xD;
  "text": {&#xD;
    "val": ""&#xD;
  },&#xD;
  "class3": {&#xD;
    "a-list-item": true&#xD;
  },&#xD;
  "color": {&#xD;
    "val": "rgb(17, 17, 17)"&#xD;
  },&#xD;
  "tag2": {&#xD;
    "val": "SPAN"&#xD;
  },&#xD;
  "id1": {&#xD;
    "val": "imgTagWrapperId"&#xD;
  },&#xD;
  "class": {&#xD;
    "a-dynamic-image": true&#xD;
  },&#xD;
  "classes3": {&#xD;
    "val": "a-list-item"&#xD;
  },&#xD;
  "tag1": {&#xD;
    "val": "DIV"&#xD;
  },&#xD;
  "id3": {&#xD;
    "val": ""&#xD;
  },&#xD;
  "class1": {&#xD;
    "imgTagWrapper": true&#xD;
  },&#xD;
  "class2": {&#xD;
    "a-declarative": true&#xD;
  },&#xD;
  "_tolerance": {&#xD;
    "val": 0.044&#xD;
  }&#xD;
}</Value>
    </SerializableNamedPairOfString>
    <SerializableNamedPairOfString>
      <Name>NewPrice</Name>
      <Value>{&#xD;
  "classes1": {&#xD;
    "val": "a-column a-span6 a-text-right a-span-last"&#xD;
  },&#xD;
  "visible": {&#xD;
    "val": true&#xD;
  },&#xD;
  "classes2": {&#xD;
    "val": "a-row"&#xD;
  },&#xD;
  "font": {&#xD;
    "val": "\"Amazon Ember\", Arial, sans-serif"&#xD;
  },&#xD;
  "childrenLen": {&#xD;
    "val": 0&#xD;
  },&#xD;
  "id": {&#xD;
    "val": "newBuyBoxPrice"&#xD;
  },&#xD;
  "tag": {&#xD;
    "val": "SPAN"&#xD;
  },&#xD;
  "id2": {&#xD;
    "val": ""&#xD;
  },&#xD;
  "tag3": {&#xD;
    "val": "DIV"&#xD;
  },&#xD;
  "color": {&#xD;
    "val": "rgb(177, 39, 4)"&#xD;
  },&#xD;
  "tag2": {&#xD;
    "val": "DIV"&#xD;
  },&#xD;
  "id1": {&#xD;
    "val": ""&#xD;
  },&#xD;
  "classes": {&#xD;
    "val": "a-size-base a-color-price header-price a-text-normal"&#xD;
  },&#xD;
  "class": {&#xD;
    "a-size-base": true,&#xD;
    "a-color-price": true,&#xD;
    "header-price": true,&#xD;
    "a-text-normal": true&#xD;
  },&#xD;
  "classes3": {&#xD;
    "val": ""&#xD;
  },&#xD;
  "tag1": {&#xD;
    "val": "DIV"&#xD;
  },&#xD;
  "id3": {&#xD;
    "val": "buyNew_cbb"&#xD;
  },&#xD;
  "class1": {&#xD;
    "a-column": true,&#xD;
    "a-span6": true,&#xD;
    "a-text-right": true,&#xD;
    "a-span-last": true&#xD;
  },&#xD;
  "class2": {&#xD;
    "a-row": true&#xD;
  },&#xD;
  "_tolerance": {&#xD;
    "val": 0.044&#xD;
  }&#xD;
}</Value>
    </SerializableNamedPairOfString>
    <SerializableNamedPairOfString>
      <Name>NextButton</Name>
      <Value>{"classes1":{"val":"a-last"},"visible":{"val":true},"classes2":{"val":"a-pagination"},"childrenLen":{"val":2},"id":{"val":""},"tag":{"val":"A"},"id2":{"val":""},"tag3":{"val":"DIV"},"text":{"val":"Next→"},"class3":{"a-text-center":true},"tag2":{"val":"UL"},"id1":{"val":""},"classes":{"val":""},"classes3":{"val":"a-text-center"},"tag1":{"val":"LI"},"id3":{"val":""},"class1":{"a-last":true},"class2":{"a-pagination":true}}</Value>
    </SerializableNamedPairOfString>
    <SerializableNamedPairOfString>
      <Name>Price</Name>
      <Value>{&#xD;
  "classes1": {&#xD;
    "val": "a-section"&#xD;
  },&#xD;
  "visible": {&#xD;
    "val": true&#xD;
  },&#xD;
  "classes2": {&#xD;
    "val": "feature"&#xD;
  },&#xD;
  "font": {&#xD;
    "val": "\"Amazon Ember\", Arial, sans-serif"&#xD;
  },&#xD;
  "childrenLen": {&#xD;
    "val": 0&#xD;
  },&#xD;
  "id": {&#xD;
    "val": "price_inside_buybox"&#xD;
  },&#xD;
  "tag": {&#xD;
    "val": "SPAN"&#xD;
  },&#xD;
  "id2": {&#xD;
    "val": "priceInsideBuyBox_feature_div"&#xD;
  },&#xD;
  "tag3": {&#xD;
    "val": "DIV"&#xD;
  },&#xD;
  "class3": {&#xD;
    "a-section": true,&#xD;
    "a-spacing-none": true,&#xD;
    "a-padding-none": true&#xD;
  },&#xD;
  "color": {&#xD;
    "val": "rgb(177, 39, 4)"&#xD;
  },&#xD;
  "tag2": {&#xD;
    "val": "DIV"&#xD;
  },&#xD;
  "id1": {&#xD;
    "val": ""&#xD;
  },&#xD;
  "classes": {&#xD;
    "val": "a-size-medium a-color-price"&#xD;
  },&#xD;
  "class": {&#xD;
    "a-size-medium": true,&#xD;
    "a-color-price": true&#xD;
  },&#xD;
  "classes3": {&#xD;
    "val": "a-section a-spacing-none a-padding-none"&#xD;
  },&#xD;
  "tag1": {&#xD;
    "val": "DIV"&#xD;
  },&#xD;
  "id3": {&#xD;
    "val": ""&#xD;
  },&#xD;
  "class1": {&#xD;
    "a-section": true&#xD;
  },&#xD;
  "class2": {&#xD;
    "feature": true&#xD;
  },&#xD;
  "_tolerance": {&#xD;
    "val": 0.044&#xD;
  }&#xD;
}</Value>
    </SerializableNamedPairOfString>
    <SerializableNamedPairOfString>
      <Name>ProductLink</Name>
      <Value>{"classes1":{"val":"a-size-mini a-spacing-none a-color-base s-line-clamp-4"},"visible":{"val":true},"classes2":{"val":"a-section a-spacing-none a-spacing-top-small"},"childrenLen":{"val":1},"id":{"val":""},"tag":{"val":"A"},"id2":{"val":""},"tag3":{"val":"DIV"},"class3":{"sg-col-inner":true},"tag2":{"val":"DIV"},"id1":{"val":""},"classes":{"val":"a-link-normal a-text-normal"},"class":{"a-link-normal":true,"a-text-normal":true},"classes3":{"val":"sg-col-inner"},"indexes":{"0":1,"2":1},"tag1":{"val":"H2"},"id3":{"val":""},"class1":{"a-size-mini":true,"a-spacing-none":true,"a-color-base":true,"s-line-clamp-4":true},"class2":{"a-section":true,"a-spacing-none":true,"a-spacing-top-small":true}}</Value>
    </SerializableNamedPairOfString>
    <SerializableNamedPairOfString>
      <Name>ProductTitle</Name>
      <Value>{"visible":{"val":true},"classes2":{"val":"a-section a-spacing-none"},"childrenLen":{"val":0},"id":{"val":"productTitle"},"tag":{"val":"SPAN"},"id2":{"val":"titleSection"},"tag3":{"val":"DIV"},"class3":{"feature":true},"tag2":{"val":"DIV"},"id1":{"val":"title"},"classes":{"val":"a-size-large"},"class":{"a-size-large":true},"classes3":{"val":"feature"},"indexes":{"0":1,"1":1,"2":1},"tag1":{"val":"H1"},"id3":{"val":"title_feature_div"},"class1":{"a-size-large":true,"a-spacing-none":true},"class2":{"a-section":true,"a-spacing-none":true}}</Value>
    </SerializableNamedPairOfString>
    <SerializableNamedPairOfString>
      <Name>ReviewCount</Name>
      <Value>{"classes1":{"val":"a-link-normal"},"visible":{"val":true},"classes2":{"val":"a-declarative"},"childrenLen":{"val":0},"id":{"val":"acrCustomerReviewText"},"tag":{"val":"SPAN"},"id2":{"val":""},"tag3":{"val":"DIV"},"class3":{"a-spacing-none":true},"tag2":{"val":"SPAN"},"id1":{"val":"acrCustomerReviewLink"},"classes":{"val":"a-size-base"},"class":{"a-size-base":true},"classes3":{"val":"a-spacing-none"},"indexes":{"0":1,"1":1,"2":5},"tag1":{"val":"A"},"id3":{"val":"averageCustomerReviews"},"class1":{"a-link-normal":true},"class2":{"a-declarative":true}}</Value>
    </SerializableNamedPairOfString>
    <SerializableNamedPairOfString>
      <Name>Seller</Name>
      <Value>{"classes1":{"val":"a-section a-spacing-none"},"visible":{"val":true},"classes2":{"val":"feature"},"childrenLen":{"val":0},"id":{"val":"bylineInfo"},"tag":{"val":"A"},"id2":{"val":"bylineInfo_feature_div"},"tag3":{"val":"DIV"},"class3":{"centerColAlign":true},"tag2":{"val":"DIV"},"id1":{"val":""},"classes":{"val":"a-link-normal"},"class":{"a-link-normal":true},"classes3":{"val":"centerColAlign"},"indexes":{"0":1,"1":1,"2":3},"tag1":{"val":"DIV"},"id3":{"val":"centerCol"},"class1":{"a-section":true,"a-spacing-none":true},"class2":{"feature":true}}</Value>
    </SerializableNamedPairOfString>
    <SerializableNamedPairOfString>
      <Name>Stars</Name>
      <Value>{"classes1":{"val":"a-declarative"},"visible":{"val":true},"classes2":{"val":"a-spacing-none"},"childrenLen":{"val":2},"id":{"val":"acrPopover"},"tag":{"val":"SPAN"},"id2":{"val":"averageCustomerReviews"},"tag3":{"val":"DIV"},"class3":{"feature":true},"tag2":{"val":"DIV"},"id1":{"val":""},"classes":{"val":"reviewCountTextLinkedHistogram noUnderline"},"class":{"reviewCountTextLinkedHistogram":true,"noUnderline":true},"classes3":{"val":"feature"},"indexes":{"0":1,"1":1,"2":3},"tag1":{"val":"SPAN"},"id3":{"val":"averageCustomerReviews_feature_div"},"class1":{"a-declarative":true},"class2":{"a-spacing-none":true}}</Value>
    </SerializableNamedPairOfString>
    <SerializableNamedPairOfString>
      <Name>TechnicalSpecifications</Name>
      <Value>{"classes1":{"val":""},"visible":{"val":true},"classes2":{"val":"a-keyvalue a-spacing-mini"},"font":{"val":"\"Amazon Ember\", Arial, sans-serif"},"childrenLen":{"val":2},"id":{"val":""},"tag":{"val":"TR"},"id2":{"val":"technicalSpecifications_section_1"},"tag3":{"val":"DIV"},"class3":{"a-column":true,"a-span6":true,"a-spacing-base":true,"a-ws-span6":true},"color":{"val":"rgb(17, 17, 17)"},"tag2":{"val":"TABLE"},"id1":{"val":""},"classes":{"val":""},"classes3":{"val":"a-column a-span6 a-spacing-base a-ws-span6"},"indexes":{"1":1,"2":3},"tag1":{"val":"TBODY"},"id3":{"val":""},"class2":{"a-keyvalue":true,"a-spacing-mini":true}}</Value>
    </SerializableNamedPairOfString>
  </Kinds>
  <Extractors>
    <SerializableGatherer>
      <Name>DetailsBulletsFeatureName</Name>
      <Value>return function(element, global) {&#xD;
	return element.firstElementChild.innerText.replace(':', '');&#xD;
};</Value>
      <Visible>true</Visible>
      <Locked>false</Locked>
    </SerializableGatherer>
    <SerializableGatherer>
      <Name>DetailsBulletsFeatureValue</Name>
      <Value>return function(element, global) {&#xD;
	return element.firstElementChild.nextElementSibling.innerText.replace(':', '');&#xD;
};</Value>
      <Visible>true</Visible>
      <Locked>false</Locked>
    </SerializableGatherer>
    <SerializableGatherer>
      <Name>HTML</Name>
      <Value>var result = function (element) {&#xD;
    return element.nodeType === 1 ? element.outerHTML : element.nodeValue;&#xD;
};&#xD;
&#xD;
result.noCache = false;&#xD;
return result;&#xD;
</Value>
      <Visible>true</Visible>
      <Locked>true</Locked>
    </SerializableGatherer>
    <SerializableGatherer>
      <Name>Link</Name>
      <Value>var result = function (element) {&#xD;
    var upperTag = function (element) {&#xD;
        return element.tagName ? element.tagName.toUpperCase() : element.tagName;&#xD;
    };&#xD;
&#xD;
    var linkOf = function (element) {&#xD;
        return element &amp;&amp; element.href &amp;&amp; (element.protocol === "http:" || element.protocol === "https:" || element.protocol == "file:" || element.protocol == "ftp:") ? element.href : null;&#xD;
    };&#xD;
&#xD;
    var original = element;&#xD;
&#xD;
    while (element &amp;&amp; (!element.tagName || upperTag(element) !== 'A'))&#xD;
        element = element.parentNode;&#xD;
&#xD;
    var result = linkOf(element);&#xD;
&#xD;
    if (!result) {&#xD;
        if (original.children.length == 1) {&#xD;
            var child = original.children[0];&#xD;
&#xD;
            if (upperTag(child) === 'A') {&#xD;
                result = linkOf(child);&#xD;
&#xD;
                if (!result) {&#xD;
                    if (child.children.length == 1) {&#xD;
                        child = child.children[0];&#xD;
&#xD;
                        if (upperTag(child) === 'A')&#xD;
                            result = linkOf(child);&#xD;
                    }&#xD;
                }&#xD;
            }&#xD;
        }&#xD;
    }&#xD;
&#xD;
    return result;&#xD;
};&#xD;
&#xD;
result.noCache = false;&#xD;
return result;&#xD;
</Value>
      <Visible>false</Visible>
      <Locked>true</Locked>
    </SerializableGatherer>
    <SerializableGatherer>
      <Name>Number</Name>
      <Value>var result = function (element) {&#xD;
    var getText = function () {&#xD;
        return element.nodeType === 1 ? element.innerText : element.nodeValue;&#xD;
    };&#xD;
&#xD;
    var regex = /-?(?=[1-9]|0(?!\d))[\d\,]+(\.\d+)?/;&#xD;
    var first = regex.exec(getText(element));&#xD;
    return first &amp;&amp; first.length ? first[0] : null;&#xD;
};&#xD;
&#xD;
result.noCache = false;&#xD;
return result;&#xD;
</Value>
      <Visible>false</Visible>
      <Locked>true</Locked>
    </SerializableGatherer>
    <SerializableGatherer>
      <Name>OwnText</Name>
      <Value>var result = function (element) {&#xD;
    var text = [].reduce.call(element.childNodes || [], (a, b) =&gt; a + (b.nodeType === 3 ? b.textContent : ''), '');&#xD;
    return text.trim();&#xD;
};&#xD;
&#xD;
result.noCache = false;&#xD;
return result;&#xD;
</Value>
      <Visible>false</Visible>
      <Locked>true</Locked>
    </SerializableGatherer>
    <SerializableGatherer>
      <Name>Path</Name>
      <Value>var result = function (element) {&#xD;
    return window.___getPath(element);&#xD;
};&#xD;
&#xD;
result.noCache = false;&#xD;
return result;&#xD;
</Value>
      <Visible>false</Visible>
      <Locked>true</Locked>
    </SerializableGatherer>
    <SerializableGatherer>
      <Name>Src</Name>
      <Value>var result = function (element) {&#xD;
    return element.src || "";&#xD;
};&#xD;
&#xD;
result.noCache = false;&#xD;
return result;&#xD;
</Value>
      <Visible>true</Visible>
      <Locked>true</Locked>
    </SerializableGatherer>
    <SerializableGatherer>
      <Name>Tag</Name>
      <Value>var result = function (element) {&#xD;
    var upperTag = function (element) {&#xD;
        return element.nodeType === 1 ? element.tagName.toUpperCase() : "HS-NODE";&#xD;
    };&#xD;
&#xD;
    return upperTag(element);&#xD;
};&#xD;
&#xD;
result.noCache = false;&#xD;
return result;&#xD;
</Value>
      <Visible>false</Visible>
      <Locked>true</Locked>
    </SerializableGatherer>
    <SerializableGatherer>
      <Name>TechnicalSpecificationName</Name>
      <Value>return function(element, global) {&#xD;
	return element.firstElementChild.innerText;&#xD;
};</Value>
      <Visible>true</Visible>
      <Locked>false</Locked>
    </SerializableGatherer>
    <SerializableGatherer>
      <Name>TechnicalSpecificationValue</Name>
      <Value>return function(element, global) {&#xD;
	return element.firstElementChild.nextElementSibling.innerText;&#xD;
};</Value>
      <Visible>true</Visible>
      <Locked>false</Locked>
    </SerializableGatherer>
    <SerializableGatherer>
      <Name>Text</Name>
      <Value>var result = function (element) {&#xD;
    var text = element.nodeType === 1 ? element.innerText : element.nodeValue;&#xD;
    return text ? text.trim() : "";&#xD;
};&#xD;
&#xD;
result.noCache = false;&#xD;
return result;&#xD;
</Value>
      <Visible>true</Visible>
      <Locked>true</Locked>
    </SerializableGatherer>
    <SerializableGatherer>
      <Name>URL</Name>
      <Value>var result =  function (element) {&#xD;
    return element.ownerDocument.defaultView.location.href;&#xD;
};&#xD;
&#xD;
result.noCache = false;&#xD;
return result;&#xD;
</Value>
      <Visible>false</Visible>
      <Locked>true</Locked>
    </SerializableGatherer>
    <SerializableGatherer>
      <Name>Value</Name>
      <Value>var result = function (element) {&#xD;
    return element.value || element.getAttribute('value');&#xD;
};&#xD;
&#xD;
result.noCache = false;&#xD;
return result;&#xD;
</Value>
      <Visible>false</Visible>
      <Locked>true</Locked>
    </SerializableGatherer>
  </Extractors>
  <KindGatherers>
    <SerializableGatherer>
      <Name>childrenLen</Name>
      <Value>var result = function (element) {&#xD;
    return { val: element.nodeType === 1 ? element.children.length : 0 };&#xD;
};&#xD;
&#xD;
result.score = 0.7; // Default&#xD;
return result;</Value>
      <Visible>false</Visible>
      <Locked>true</Locked>
    </SerializableGatherer>
    <SerializableGatherer>
      <Name>class</Name>
      <Value>var result = function (element) {&#xD;
    if (element.nodeType !== 1)&#xD;
        element = element.parentElement;&#xD;
&#xD;
    var result = {};&#xD;
    var list = element.classList;&#xD;
    var len = list.length;&#xD;
&#xD;
    for (var i = 0; i &lt; len; i++)&#xD;
        result[list[i]] = true;&#xD;
&#xD;
    return result;&#xD;
};&#xD;
&#xD;
result.score = 0.73;&#xD;
return result;</Value>
      <Visible>false</Visible>
      <Locked>true</Locked>
    </SerializableGatherer>
    <SerializableGatherer>
      <Name>class1</Name>
      <Value>var result = window.___makeRelatedGatherer('class', function (element) {&#xD;
    return element.parentNode;&#xD;
});&#xD;
&#xD;
result.score = 0.87;&#xD;
return result;</Value>
      <Visible>false</Visible>
      <Locked>true</Locked>
    </SerializableGatherer>
    <SerializableGatherer>
      <Name>class2</Name>
      <Value>var result = window.___makeRelatedGatherer('class', function (element) {&#xD;
    return element.parentNode.parentNode;&#xD;
});&#xD;
&#xD;
result.score = 0.87;&#xD;
return result;</Value>
      <Visible>false</Visible>
      <Locked>true</Locked>
    </SerializableGatherer>
    <SerializableGatherer>
      <Name>class3</Name>
      <Value>var result = window.___makeRelatedGatherer('class', function (element) {&#xD;
    return element.parentNode.parentNode.parentNode;&#xD;
});&#xD;
&#xD;
result.score = 0.9;&#xD;
return result;</Value>
      <Visible>false</Visible>
      <Locked>true</Locked>
    </SerializableGatherer>
    <SerializableGatherer>
      <Name>classes</Name>
      <Value>var result = function (element) {&#xD;
    if (element.nodeType !== 1)&#xD;
        element = element.parentElement;&#xD;
&#xD;
    return { val: typeof element.className === 'string' ? element.className : null };&#xD;
};&#xD;
&#xD;
result.score = 0.91;&#xD;
return result;</Value>
      <Visible>false</Visible>
      <Locked>true</Locked>
    </SerializableGatherer>
    <SerializableGatherer>
      <Name>classes1</Name>
      <Value>var result = window.___makeRelatedGatherer('classes', function (element) {&#xD;
    return element.parentNode;&#xD;
});&#xD;
&#xD;
result.score = 0.95;&#xD;
return result;</Value>
      <Visible>false</Visible>
      <Locked>true</Locked>
    </SerializableGatherer>
    <SerializableGatherer>
      <Name>classes2</Name>
      <Value>var result = window.___makeRelatedGatherer('classes', function (element) {&#xD;
    return element.parentNode.parentNode;&#xD;
});&#xD;
&#xD;
result.score = 0.95;&#xD;
return result;</Value>
      <Visible>false</Visible>
      <Locked>true</Locked>
    </SerializableGatherer>
    <SerializableGatherer>
      <Name>classes3</Name>
      <Value>var result = window.___makeRelatedGatherer('classes', function (element) {&#xD;
    return element.parentNode.parentNode.parentNode;&#xD;
});&#xD;
&#xD;
result.score = 0.81;&#xD;
return result;</Value>
      <Visible>false</Visible>
      <Locked>true</Locked>
    </SerializableGatherer>
    <SerializableGatherer>
      <Name>colIndex</Name>
      <Value>var result = function (element) {&#xD;
    var maxUp = 5;&#xD;
&#xD;
    function closestTd(element) {&#xD;
        for (var up = 0; up &lt; maxUp; up++) {&#xD;
            if (!element) return null;&#xD;
            if (/^t[dh]$/i.test(element.nodeName))&#xD;
                return element;&#xD;
            element = element.parentNode;&#xD;
        }&#xD;
&#xD;
        return null;&#xD;
    }&#xD;
&#xD;
    function colSpan(col) {&#xD;
        return parseInt((col &amp;&amp; col.nodeType == 1 &amp;&amp; /^t[dh]$/i.test(element.nodeName)) ? (col.getAttribute('colSpan') || 1) : 0);&#xD;
    }&#xD;
&#xD;
    function endIndex(element) {&#xD;
        var colPos = colSpan(element);&#xD;
&#xD;
        while (element) {&#xD;
            element = element.previousSibling;&#xD;
            colPos += colSpan(element);&#xD;
        }&#xD;
&#xD;
        return colPos;&#xD;
    }&#xD;
&#xD;
    element = closestTd(element);&#xD;
&#xD;
    if (element)&#xD;
        return { val: endIndex(element.previousSibling) };&#xD;
    else&#xD;
        return {};&#xD;
};&#xD;
&#xD;
result.score = 0.7; // Default&#xD;
return result;</Value>
      <Visible>false</Visible>
      <Locked>true</Locked>
    </SerializableGatherer>
    <SerializableGatherer>
      <Name>color</Name>
      <Value>var result = function (element) {&#xD;
    if (element.nodeType !== 1)&#xD;
        element = element.parentElement;&#xD;
&#xD;
    return { val: window.getComputedStyle(element).color };&#xD;
};&#xD;
&#xD;
result.score = 1;&#xD;
return result;</Value>
      <Visible>false</Visible>
      <Locked>true</Locked>
    </SerializableGatherer>
    <SerializableGatherer>
      <Name>font</Name>
      <Value>var result = function (element) {&#xD;
    if (element.nodeType !== 1)&#xD;
        element = element.parentElement;&#xD;
&#xD;
    return { val: window.getComputedStyle(element)['font-family'] };&#xD;
};&#xD;
&#xD;
result.score = 1;&#xD;
return result;</Value>
      <Visible>false</Visible>
      <Locked>true</Locked>
    </SerializableGatherer>
    <SerializableGatherer>
      <Name>header</Name>
      <Value>var result = function header(element) {&#xD;
    var upperTag = function (element) {&#xD;
        return element.tagName ? element.tagName.toUpperCase() : element.tagName;&#xD;
    };&#xD;
&#xD;
    var getColumnIndex = function (e) {&#xD;
        var maxLevels = 3;&#xD;
&#xD;
        while (e &amp;&amp; upperTag(e) !== 'TD' &amp;&amp; maxLevels &gt; 0) {&#xD;
            e = e.parentElement;&#xD;
            maxLevels--;&#xD;
        }&#xD;
&#xD;
        if (e &amp;&amp; upperTag(e) === 'TD') {&#xD;
            var index = 0;&#xD;
            while ((e = e.previousElementSibling)) {&#xD;
                index += e.colSpan || 1;&#xD;
            }&#xD;
            return index;&#xD;
        }&#xD;
        else&#xD;
            return -1;&#xD;
    };&#xD;
&#xD;
    var colIndex = getColumnIndex(element);&#xD;
&#xD;
    if (colIndex !== -1) {&#xD;
        while (element &amp;&amp; upperTag(element) !== 'TABLE')&#xD;
            element = element.parentElement;&#xD;
&#xD;
        if (element &amp;&amp; upperTag(element) === 'TABLE') {&#xD;
            var tds = element.querySelectorAll('th,td');&#xD;
            var index = 0;&#xD;
            var latest = null;&#xD;
&#xD;
            for (var td of tds) {&#xD;
                if (index &gt; colIndex)&#xD;
                    return { val: (latest.innerText || "").trim() };&#xD;
&#xD;
                latest = td;&#xD;
                index += td.colSpan || 1;&#xD;
            }&#xD;
        }&#xD;
    }&#xD;
&#xD;
    return {};&#xD;
};&#xD;
&#xD;
result.score = 0.9;&#xD;
return result;</Value>
      <Visible>false</Visible>
      <Locked>true</Locked>
    </SerializableGatherer>
    <SerializableGatherer>
      <Name>id</Name>
      <Value>var result = function (element) {&#xD;
    if (element.nodeType !== 1)&#xD;
        element = element.parentElement;&#xD;
&#xD;
    return { val: element.id };&#xD;
};&#xD;
&#xD;
result.score = 0.98;&#xD;
return result;</Value>
      <Visible>false</Visible>
      <Locked>true</Locked>
    </SerializableGatherer>
    <SerializableGatherer>
      <Name>id1</Name>
      <Value>var result = window.___makeRelatedGatherer('id', function (element) {&#xD;
    return element.parentNode;&#xD;
});&#xD;
&#xD;
result.score = 0.91;&#xD;
return result;</Value>
      <Visible>false</Visible>
      <Locked>true</Locked>
    </SerializableGatherer>
    <SerializableGatherer>
      <Name>id2</Name>
      <Value>var result = window.___makeRelatedGatherer('id', function (element) {&#xD;
    return element.parentNode.parentNode;&#xD;
});&#xD;
&#xD;
result.score = 0.91;&#xD;
return result;</Value>
      <Visible>false</Visible>
      <Locked>true</Locked>
    </SerializableGatherer>
    <SerializableGatherer>
      <Name>id3</Name>
      <Value>var result = window.___makeRelatedGatherer('id', function (element) {&#xD;
    return element.parentNode.parentNode.parentNode;&#xD;
});&#xD;
&#xD;
result.score = 0.88;&#xD;
return result;</Value>
      <Visible>false</Visible>
      <Locked>true</Locked>
    </SerializableGatherer>
    <SerializableGatherer>
      <Name>indexes</Name>
      <Value>var result = function (element) {&#xD;
    function getElementIndex(node) {&#xD;
        var index = 0;&#xD;
        while ((node = node.previousSibling)) {&#xD;
            index++;&#xD;
        }&#xD;
        return index;&#xD;
    }&#xD;
&#xD;
    var result = {};&#xD;
    var level = 0;&#xD;
    var levels = 3;&#xD;
&#xD;
    while (element &amp;&amp; level &lt; levels) {&#xD;
        result[level] = getElementIndex(element);&#xD;
        level++;&#xD;
        element = element.parentElement&#xD;
    }&#xD;
&#xD;
    return result;&#xD;
};&#xD;
&#xD;
result.score = 0.86;&#xD;
return result;</Value>
      <Visible>false</Visible>
      <Locked>true</Locked>
    </SerializableGatherer>
    <SerializableGatherer>
      <Name>names</Name>
      <Value>var result = function (element) {&#xD;
    function getElementName(node) {&#xD;
        return node.nodeType === 1 ? (node.name || node.getAttribute('name')) : null;&#xD;
    }&#xD;
&#xD;
    var result = {};&#xD;
    var level = 0;&#xD;
    var levels = 3;&#xD;
&#xD;
    while (element &amp;&amp; level &lt; levels) {&#xD;
        var name = getElementName(element);&#xD;
        if (name) result[level] = name;&#xD;
        level++;&#xD;
        element = element.parentElement&#xD;
    }&#xD;
&#xD;
    return result;&#xD;
};&#xD;
&#xD;
result.score = 0.75;&#xD;
return result;</Value>
      <Visible>false</Visible>
      <Locked>true</Locked>
    </SerializableGatherer>
    <SerializableGatherer>
      <Name>prevText</Name>
      <Value>var result = function (element) {&#xD;
    var maxDepth = 0;&#xD;
    var maxLength = 128;&#xD;
&#xD;
    while (element &amp;&amp; !element.previousElementSibling &amp;&amp; maxDepth &gt; 0) {&#xD;
        element = element.parentElement;&#xD;
        maxDepth--;&#xD;
    }&#xD;
&#xD;
    if (element &amp;&amp; element.previousElementSibling) {&#xD;
        var fullText = element.previousElementSibling.innerText;&#xD;
&#xD;
        if (fullText.length &lt; maxLength)&#xD;
            return { val: fullText };&#xD;
&#xD;
    }&#xD;
&#xD;
    return null;&#xD;
};&#xD;
&#xD;
result.score = 0.7; // Default&#xD;
return result;</Value>
      <Visible>false</Visible>
      <Locked>true</Locked>
    </SerializableGatherer>
    <SerializableGatherer>
      <Name>tag</Name>
      <Value>var result = function (element) {&#xD;
    var upperTag = function (element) {&#xD;
        return element.nodeType === 1 ? element.tagName.toUpperCase() : "HS-NODE";&#xD;
    };&#xD;
&#xD;
    return { val: upperTag(element) };&#xD;
};&#xD;
&#xD;
result.score = 1;&#xD;
return result;</Value>
      <Visible>false</Visible>
      <Locked>true</Locked>
    </SerializableGatherer>
    <SerializableGatherer>
      <Name>tag1</Name>
      <Value>var result = window.___makeRelatedGatherer('tag', function (element) {&#xD;
    return element.parentNode;&#xD;
});&#xD;
&#xD;
result.score = 1;&#xD;
return result;</Value>
      <Visible>false</Visible>
      <Locked>true</Locked>
    </SerializableGatherer>
    <SerializableGatherer>
      <Name>tag2</Name>
      <Value>var result = window.___makeRelatedGatherer('tag', function (element) {&#xD;
    return element.parentNode.parentNode;&#xD;
});&#xD;
&#xD;
result.score = 1;&#xD;
return result;</Value>
      <Visible>false</Visible>
      <Locked>true</Locked>
    </SerializableGatherer>
    <SerializableGatherer>
      <Name>tag3</Name>
      <Value>var result = window.___makeRelatedGatherer('tag', function (element) {&#xD;
    return element.parentNode.parentNode.parentNode;&#xD;
});&#xD;
&#xD;
result.score = 1;&#xD;
return result;</Value>
      <Visible>false</Visible>
      <Locked>true</Locked>
    </SerializableGatherer>
    <SerializableGatherer>
      <Name>text</Name>
      <Value>var result = function (element) {&#xD;
&#xD;
    if (element.nodeType !== 1)&#xD;
        return null;&#xD;
&#xD;
    if (window.___textTags.has(element.tagName.toUpperCase()))&#xD;
        return null;&#xD;
&#xD;
    var text = element.innerText;&#xD;
&#xD;
    if (text.length &gt; 64)&#xD;
        return null;&#xD;
&#xD;
    return { val: text };&#xD;
};&#xD;
&#xD;
result.score = 0.1;&#xD;
return result;</Value>
      <Visible>false</Visible>
      <Locked>true</Locked>
    </SerializableGatherer>
    <SerializableGatherer>
      <Name>visible</Name>
      <Value>var result = function (element) {&#xD;
    if (element.nodeType !== 1)&#xD;
        element = element.parentElement;&#xD;
&#xD;
    return { val: element.offsetParent !== null };&#xD;
};&#xD;
&#xD;
result.score = 1;&#xD;
return result;</Value>
      <Visible>false</Visible>
      <Locked>true</Locked>
    </SerializableGatherer>
  </KindGatherers>
  <Scripts />
  <Queries>
    <SerializableQuery>
      <Name>Concat</Name>
      <UniversalType>
        <ResultType xsi:type="SerializableListType">
          <ItemType xsi:type="SerializableObjectType">
            <Members>
              <SerializableObjectMember>
                <Name>url</Name>
                <Type xsi:type="SerializableSimpleType">
                  <Kind>String</Kind>
                </Type>
              </SerializableObjectMember>
              <SerializableObjectMember>
                <Name>title</Name>
                <Type xsi:type="SerializableSimpleType">
                  <Kind>String</Kind>
                </Type>
              </SerializableObjectMember>
              <SerializableObjectMember>
                <Name>stars</Name>
                <Type xsi:type="SerializableSimpleType">
                  <Kind>String</Kind>
                </Type>
              </SerializableObjectMember>
              <SerializableObjectMember>
                <Name>seller</Name>
                <Type xsi:type="SerializableSimpleType">
                  <Kind>String</Kind>
                </Type>
              </SerializableObjectMember>
              <SerializableObjectMember>
                <Name>reviews</Name>
                <Type xsi:type="SerializableSimpleType">
                  <Kind>String</Kind>
                </Type>
              </SerializableObjectMember>
              <SerializableObjectMember>
                <Name>price</Name>
                <Type xsi:type="SerializableSimpleType">
                  <Kind>String</Kind>
                </Type>
              </SerializableObjectMember>
              <SerializableObjectMember>
                <Name>newPrice</Name>
                <Type xsi:type="SerializableSimpleType">
                  <Kind>String</Kind>
                </Type>
              </SerializableObjectMember>
              <SerializableObjectMember>
                <Name>image</Name>
                <Type xsi:type="SerializableSimpleType">
                  <Kind>String</Kind>
                </Type>
              </SerializableObjectMember>
              <SerializableObjectMember>
                <Name>availability</Name>
                <Type xsi:type="SerializableSimpleType">
                  <Kind>String</Kind>
                </Type>
              </SerializableObjectMember>
              <SerializableObjectMember>
                <Name>delivery</Name>
                <Type xsi:type="SerializableSimpleType">
                  <Kind>String</Kind>
                </Type>
              </SerializableObjectMember>
              <SerializableObjectMember>
                <Name>featires</Name>
                <Type xsi:type="SerializableSimpleType">
                  <Kind>String</Kind>
                </Type>
              </SerializableObjectMember>
              <SerializableObjectMember>
                <Name>detailsBullets</Name>
                <Type xsi:type="SerializableSimpleType">
                  <Kind>String</Kind>
                </Type>
              </SerializableObjectMember>
              <SerializableObjectMember>
                <Name>technicalSpecifications</Name>
                <Type xsi:type="SerializableSimpleType">
                  <Kind>String</Kind>
                </Type>
              </SerializableObjectMember>
            </Members>
          </ItemType>
        </ResultType>
        <Parameters />
      </UniversalType>
      <QueryTemplate>select&#xD;
	`url`,&#xD;
	`title`,&#xD;
	`stars`,&#xD;
	`seller`,&#xD;
	`reviews`,&#xD;
	`price`,&#xD;
	`newPrice`,&#xD;
	`image`,&#xD;
	`availability`,&#xD;
	`delivery`,&#xD;
	`description`&#xD;
	`featires`,&#xD;
	`detailsBullets`,&#xD;
	`technicalSpecifications`&#xD;
	from `Main`&#xD;
&#xD;
		left join &#xD;
	(select `Main`, group_concat(`Main.features`.`feature`, x'0d0a') as features from `Main.features` group by `Main`) as features&#xD;
on `features`.`Main` = `Main`.`id`&#xD;
					&#xD;
left join &#xD;
(select `Main`, group_concat(`Main.detailsBullets`.`name` || ': ' || `Main.detailsBullets`.`value`, x'0d0a') as detailsBullets from `Main.detailsBullets` group by `Main`) as detailsBullets&#xD;
on `detailsBullets`.`Main` = `Main`.`id`&#xD;
					&#xD;
left join &#xD;
(select `Main`, group_concat(`Main.technicalSpecifications`.`name` || ': ' || `Main.technicalSpecifications`.`value`, x'0d0a') as technicalSpecifications from `Main.technicalSpecifications` group by `Main`) as technicalSpecifications&#xD;
on `technicalSpecifications`.`Main` = `Main`.`id`&#xD;
&#xD;
&#xD;
</QueryTemplate>
      <QueryArguments />
    </SerializableQuery>
  </Queries>
  <JsonReaders />
  <AjaxReaders />
  <Settings />
  <BlockList>*://*.doubleclick.net/*&#xD;
*://*.amazon-adsystem.com/*&#xD;
*://*.google-analytics.com/*&#xD;
*://*.googlesyndication.com/*&#xD;
*://*.advertising.com/*&#xD;
*://*.imrworldwide.com/*&#xD;
*://*.quantserve.com/*&#xD;
*://*.googleadservices.com/*&#xD;
*://*.scorecardresearch.com/*&#xD;
https://cloudfront-labs.amazonaws.com/x.png</BlockList>
  <DynamicInject />
  <ProjectCode>a33f25aceec91ad56c17716e0b4ea7b3</ProjectCode>
  <Signature>ZuJ6P4i2ACXkmc0IMeV9JVWHXeBF1aotw8SKF+mJurhzmEUx5TmLiccCOGawYXOK6qg9ryKGXLPoauVTIgaOmkN5xQiBRtpNBLDmA7Yyb3YmE90MG0LL0EfhcnKj/hdtNW3hHKg4a2TAe7E7EL6NYfytG7qBtPrkN0HWmwSxq20dV9zImW7QXPKPBhkL80Fp3HnFFXRyGFm4+CeviY5Y3leZhDjOIclKBO2acFVGUl4pldZHIk5sPEjfW03fot2LzHAMgpnXBG393d151+7XicIOllZQ39Ll7KfKPveRxikaQvelEm+OjVi2v9arW+Cp206PX8Ian80viA4AuGVHbQ==</Signature>
</SerializableScraperProject>