001//
002// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.10-b140310.1920 
003// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 
004// Any modifications to this file will be lost upon recompilation of the source schema. 
005// Generated on: 2017.07.25 at 01:05:24 PM EDT 
006//
007
008
009package org.apache.activemq.schema.core;
010
011import java.math.BigInteger;
012import java.util.ArrayList;
013import java.util.HashMap;
014import java.util.List;
015import java.util.Map;
016import javax.xml.bind.JAXBElement;
017import javax.xml.bind.annotation.XmlAccessType;
018import javax.xml.bind.annotation.XmlAccessorType;
019import javax.xml.bind.annotation.XmlAnyAttribute;
020import javax.xml.bind.annotation.XmlAnyElement;
021import javax.xml.bind.annotation.XmlAttribute;
022import javax.xml.bind.annotation.XmlElementRef;
023import javax.xml.bind.annotation.XmlID;
024import javax.xml.bind.annotation.XmlRootElement;
025import javax.xml.bind.annotation.XmlSchemaType;
026import javax.xml.bind.annotation.XmlType;
027import javax.xml.bind.annotation.adapters.CollapsedStringAdapter;
028import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
029import javax.xml.namespace.QName;
030import org.jvnet.jaxb2_commons.lang.Equals;
031import org.jvnet.jaxb2_commons.lang.EqualsStrategy;
032import org.jvnet.jaxb2_commons.lang.HashCode;
033import org.jvnet.jaxb2_commons.lang.HashCodeStrategy;
034import org.jvnet.jaxb2_commons.lang.JAXBHashCodeStrategy;
035import org.jvnet.jaxb2_commons.lang.JAXBToStringStrategy;
036import org.jvnet.jaxb2_commons.lang.ToString;
037import org.jvnet.jaxb2_commons.lang.ToStringStrategy;
038import org.jvnet.jaxb2_commons.locator.ObjectLocator;
039import org.jvnet.jaxb2_commons.locator.util.LocatorUtils;
040
041
042/**
043 * <p>Java class for anonymous complex type.
044 * 
045 * <p>The following schema fragment specifies the expected content contained within this class.
046 * 
047 * <pre>
048 * &lt;complexType>
049 *   &lt;complexContent>
050 *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
051 *       &lt;choice maxOccurs="unbounded" minOccurs="0">
052 *         &lt;choice>
053 *           &lt;element name="statements" minOccurs="0">
054 *             &lt;complexType>
055 *               &lt;complexContent>
056 *                 &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
057 *                   &lt;choice minOccurs="0">
058 *                     &lt;element ref="{http://activemq.apache.org/schema/core}statements"/>
059 *                     &lt;any namespace='##other'/>
060 *                   &lt;/choice>
061 *                 &lt;/restriction>
062 *               &lt;/complexContent>
063 *             &lt;/complexType>
064 *           &lt;/element>
065 *           &lt;any namespace='##other' maxOccurs="unbounded" minOccurs="0"/>
066 *         &lt;/choice>
067 *       &lt;/choice>
068 *       &lt;attribute name="acksPkName" type="{http://www.w3.org/2001/XMLSchema}string" />
069 *       &lt;attribute name="batchStatements" type="{http://www.w3.org/2001/XMLSchema}boolean" />
070 *       &lt;attribute name="batchStatments" type="{http://www.w3.org/2001/XMLSchema}boolean" />
071 *       &lt;attribute name="maxRows" type="{http://www.w3.org/2001/XMLSchema}integer" />
072 *       &lt;attribute name="statements" type="{http://www.w3.org/2001/XMLSchema}string" />
073 *       &lt;attribute name="useExternalMessageReferences" type="{http://www.w3.org/2001/XMLSchema}boolean" />
074 *       &lt;attribute name="id" type="{http://www.w3.org/2001/XMLSchema}ID" />
075 *       &lt;anyAttribute processContents='lax' namespace='##other'/>
076 *     &lt;/restriction>
077 *   &lt;/complexContent>
078 * &lt;/complexType>
079 * </pre>
080 * 
081 * 
082 */
083@XmlAccessorType(XmlAccessType.FIELD)
084@XmlType(name = "", propOrder = {
085    "statementsOrAny"
086})
087@XmlRootElement(name = "postgresql-jdbc-adapter")
088public class DtoPostgresqlJdbcAdapter
089    implements Equals, HashCode, ToString
090{
091
092    @XmlElementRef(name = "statements", namespace = "http://activemq.apache.org/schema/core", type = JAXBElement.class, required = false)
093    @XmlAnyElement(lax = true)
094    protected List<Object> statementsOrAny;
095    @XmlAttribute(name = "acksPkName")
096    protected String acksPkName;
097    @XmlAttribute(name = "batchStatements")
098    protected Boolean batchStatements;
099    @XmlAttribute(name = "batchStatments")
100    protected Boolean batchStatments;
101    @XmlAttribute(name = "maxRows")
102    protected BigInteger maxRows;
103    @XmlAttribute(name = "statements")
104    protected String statements;
105    @XmlAttribute(name = "useExternalMessageReferences")
106    protected Boolean useExternalMessageReferences;
107    @XmlAttribute(name = "id")
108    @XmlJavaTypeAdapter(CollapsedStringAdapter.class)
109    @XmlID
110    @XmlSchemaType(name = "ID")
111    protected String id;
112    @XmlAnyAttribute
113    private Map<QName, String> otherAttributes = new HashMap<QName, String>();
114
115    /**
116     * Gets the value of the statementsOrAny property.
117     * 
118     * <p>
119     * This accessor method returns a reference to the live list,
120     * not a snapshot. Therefore any modification you make to the
121     * returned list will be present inside the JAXB object.
122     * This is why there is not a <CODE>set</CODE> method for the statementsOrAny property.
123     * 
124     * <p>
125     * For example, to add a new item, do as follows:
126     * <pre>
127     *    getStatementsOrAny().add(newItem);
128     * </pre>
129     * 
130     * 
131     * <p>
132     * Objects of the following type(s) are allowed in the list
133     * {@link Object }
134     * {@link JAXBElement }{@code <}{@link DtoPostgresqlJdbcAdapter.Statements }{@code >}
135     * 
136     * 
137     */
138    public List<Object> getStatementsOrAny() {
139        if (statementsOrAny == null) {
140            statementsOrAny = new ArrayList<Object>();
141        }
142        return this.statementsOrAny;
143    }
144
145    /**
146     * Gets the value of the acksPkName property.
147     * 
148     * @return
149     *     possible object is
150     *     {@link String }
151     *     
152     */
153    public String getAcksPkName() {
154        return acksPkName;
155    }
156
157    /**
158     * Sets the value of the acksPkName property.
159     * 
160     * @param value
161     *     allowed object is
162     *     {@link String }
163     *     
164     */
165    public void setAcksPkName(String value) {
166        this.acksPkName = value;
167    }
168
169    /**
170     * Gets the value of the batchStatements property.
171     * 
172     * @return
173     *     possible object is
174     *     {@link Boolean }
175     *     
176     */
177    public Boolean isBatchStatements() {
178        return batchStatements;
179    }
180
181    /**
182     * Sets the value of the batchStatements property.
183     * 
184     * @param value
185     *     allowed object is
186     *     {@link Boolean }
187     *     
188     */
189    public void setBatchStatements(Boolean value) {
190        this.batchStatements = value;
191    }
192
193    /**
194     * Gets the value of the batchStatments property.
195     * 
196     * @return
197     *     possible object is
198     *     {@link Boolean }
199     *     
200     */
201    public Boolean isBatchStatments() {
202        return batchStatments;
203    }
204
205    /**
206     * Sets the value of the batchStatments property.
207     * 
208     * @param value
209     *     allowed object is
210     *     {@link Boolean }
211     *     
212     */
213    public void setBatchStatments(Boolean value) {
214        this.batchStatments = value;
215    }
216
217    /**
218     * Gets the value of the maxRows property.
219     * 
220     * @return
221     *     possible object is
222     *     {@link BigInteger }
223     *     
224     */
225    public BigInteger getMaxRows() {
226        return maxRows;
227    }
228
229    /**
230     * Sets the value of the maxRows property.
231     * 
232     * @param value
233     *     allowed object is
234     *     {@link BigInteger }
235     *     
236     */
237    public void setMaxRows(BigInteger value) {
238        this.maxRows = value;
239    }
240
241    /**
242     * Gets the value of the statements property.
243     * 
244     * @return
245     *     possible object is
246     *     {@link String }
247     *     
248     */
249    public String getStatements() {
250        return statements;
251    }
252
253    /**
254     * Sets the value of the statements property.
255     * 
256     * @param value
257     *     allowed object is
258     *     {@link String }
259     *     
260     */
261    public void setStatements(String value) {
262        this.statements = value;
263    }
264
265    /**
266     * Gets the value of the useExternalMessageReferences property.
267     * 
268     * @return
269     *     possible object is
270     *     {@link Boolean }
271     *     
272     */
273    public Boolean isUseExternalMessageReferences() {
274        return useExternalMessageReferences;
275    }
276
277    /**
278     * Sets the value of the useExternalMessageReferences property.
279     * 
280     * @param value
281     *     allowed object is
282     *     {@link Boolean }
283     *     
284     */
285    public void setUseExternalMessageReferences(Boolean value) {
286        this.useExternalMessageReferences = value;
287    }
288
289    /**
290     * Gets the value of the id property.
291     * 
292     * @return
293     *     possible object is
294     *     {@link String }
295     *     
296     */
297    public String getId() {
298        return id;
299    }
300
301    /**
302     * Sets the value of the id property.
303     * 
304     * @param value
305     *     allowed object is
306     *     {@link String }
307     *     
308     */
309    public void setId(String value) {
310        this.id = value;
311    }
312
313    /**
314     * Gets a map that contains attributes that aren't bound to any typed property on this class.
315     * 
316     * <p>
317     * the map is keyed by the name of the attribute and 
318     * the value is the string value of the attribute.
319     * 
320     * the map returned by this method is live, and you can add new attribute
321     * by updating the map directly. Because of this design, there's no setter.
322     * 
323     * 
324     * @return
325     *     always non-null
326     */
327    public Map<QName, String> getOtherAttributes() {
328        return otherAttributes;
329    }
330
331    public String toString() {
332        final ToStringStrategy strategy = JAXBToStringStrategy.INSTANCE;
333        final StringBuilder buffer = new StringBuilder();
334        append(null, buffer, strategy);
335        return buffer.toString();
336    }
337
338    public StringBuilder append(ObjectLocator locator, StringBuilder buffer, ToStringStrategy strategy) {
339        strategy.appendStart(locator, this, buffer);
340        appendFields(locator, buffer, strategy);
341        strategy.appendEnd(locator, this, buffer);
342        return buffer;
343    }
344
345    public StringBuilder appendFields(ObjectLocator locator, StringBuilder buffer, ToStringStrategy strategy) {
346        {
347            List<Object> theStatementsOrAny;
348            theStatementsOrAny = (((this.statementsOrAny!= null)&&(!this.statementsOrAny.isEmpty()))?this.getStatementsOrAny():null);
349            strategy.appendField(locator, this, "statementsOrAny", buffer, theStatementsOrAny);
350        }
351        {
352            String theAcksPkName;
353            theAcksPkName = this.getAcksPkName();
354            strategy.appendField(locator, this, "acksPkName", buffer, theAcksPkName);
355        }
356        {
357            Boolean theBatchStatements;
358            theBatchStatements = this.isBatchStatements();
359            strategy.appendField(locator, this, "batchStatements", buffer, theBatchStatements);
360        }
361        {
362            Boolean theBatchStatments;
363            theBatchStatments = this.isBatchStatments();
364            strategy.appendField(locator, this, "batchStatments", buffer, theBatchStatments);
365        }
366        {
367            BigInteger theMaxRows;
368            theMaxRows = this.getMaxRows();
369            strategy.appendField(locator, this, "maxRows", buffer, theMaxRows);
370        }
371        {
372            String theStatements;
373            theStatements = this.getStatements();
374            strategy.appendField(locator, this, "statements", buffer, theStatements);
375        }
376        {
377            Boolean theUseExternalMessageReferences;
378            theUseExternalMessageReferences = this.isUseExternalMessageReferences();
379            strategy.appendField(locator, this, "useExternalMessageReferences", buffer, theUseExternalMessageReferences);
380        }
381        {
382            String theId;
383            theId = this.getId();
384            strategy.appendField(locator, this, "id", buffer, theId);
385        }
386        return buffer;
387    }
388
389    public int hashCode(ObjectLocator locator, HashCodeStrategy strategy) {
390        int currentHashCode = 1;
391        {
392            List<Object> theStatementsOrAny;
393            theStatementsOrAny = (((this.statementsOrAny!= null)&&(!this.statementsOrAny.isEmpty()))?this.getStatementsOrAny():null);
394            currentHashCode = strategy.hashCode(LocatorUtils.property(locator, "statementsOrAny", theStatementsOrAny), currentHashCode, theStatementsOrAny);
395        }
396        {
397            String theAcksPkName;
398            theAcksPkName = this.getAcksPkName();
399            currentHashCode = strategy.hashCode(LocatorUtils.property(locator, "acksPkName", theAcksPkName), currentHashCode, theAcksPkName);
400        }
401        {
402            Boolean theBatchStatements;
403            theBatchStatements = this.isBatchStatements();
404            currentHashCode = strategy.hashCode(LocatorUtils.property(locator, "batchStatements", theBatchStatements), currentHashCode, theBatchStatements);
405        }
406        {
407            Boolean theBatchStatments;
408            theBatchStatments = this.isBatchStatments();
409            currentHashCode = strategy.hashCode(LocatorUtils.property(locator, "batchStatments", theBatchStatments), currentHashCode, theBatchStatments);
410        }
411        {
412            BigInteger theMaxRows;
413            theMaxRows = this.getMaxRows();
414            currentHashCode = strategy.hashCode(LocatorUtils.property(locator, "maxRows", theMaxRows), currentHashCode, theMaxRows);
415        }
416        {
417            String theStatements;
418            theStatements = this.getStatements();
419            currentHashCode = strategy.hashCode(LocatorUtils.property(locator, "statements", theStatements), currentHashCode, theStatements);
420        }
421        {
422            Boolean theUseExternalMessageReferences;
423            theUseExternalMessageReferences = this.isUseExternalMessageReferences();
424            currentHashCode = strategy.hashCode(LocatorUtils.property(locator, "useExternalMessageReferences", theUseExternalMessageReferences), currentHashCode, theUseExternalMessageReferences);
425        }
426        {
427            String theId;
428            theId = this.getId();
429            currentHashCode = strategy.hashCode(LocatorUtils.property(locator, "id", theId), currentHashCode, theId);
430        }
431        return currentHashCode;
432    }
433
434    public int hashCode() {
435        final HashCodeStrategy strategy = JAXBHashCodeStrategy.INSTANCE;
436        return this.hashCode(null, strategy);
437    }
438
439    public boolean equals(ObjectLocator thisLocator, ObjectLocator thatLocator, Object object, EqualsStrategy strategy) {
440        if (!(object instanceof DtoPostgresqlJdbcAdapter)) {
441            return false;
442        }
443        if (this == object) {
444            return true;
445        }
446        final DtoPostgresqlJdbcAdapter that = ((DtoPostgresqlJdbcAdapter) object);
447        {
448            List<Object> lhsStatementsOrAny;
449            lhsStatementsOrAny = (((this.statementsOrAny!= null)&&(!this.statementsOrAny.isEmpty()))?this.getStatementsOrAny():null);
450            List<Object> rhsStatementsOrAny;
451            rhsStatementsOrAny = (((that.statementsOrAny!= null)&&(!that.statementsOrAny.isEmpty()))?that.getStatementsOrAny():null);
452            if (!strategy.equals(LocatorUtils.property(thisLocator, "statementsOrAny", lhsStatementsOrAny), LocatorUtils.property(thatLocator, "statementsOrAny", rhsStatementsOrAny), lhsStatementsOrAny, rhsStatementsOrAny)) {
453                return false;
454            }
455        }
456        {
457            String lhsAcksPkName;
458            lhsAcksPkName = this.getAcksPkName();
459            String rhsAcksPkName;
460            rhsAcksPkName = that.getAcksPkName();
461            if (!strategy.equals(LocatorUtils.property(thisLocator, "acksPkName", lhsAcksPkName), LocatorUtils.property(thatLocator, "acksPkName", rhsAcksPkName), lhsAcksPkName, rhsAcksPkName)) {
462                return false;
463            }
464        }
465        {
466            Boolean lhsBatchStatements;
467            lhsBatchStatements = this.isBatchStatements();
468            Boolean rhsBatchStatements;
469            rhsBatchStatements = that.isBatchStatements();
470            if (!strategy.equals(LocatorUtils.property(thisLocator, "batchStatements", lhsBatchStatements), LocatorUtils.property(thatLocator, "batchStatements", rhsBatchStatements), lhsBatchStatements, rhsBatchStatements)) {
471                return false;
472            }
473        }
474        {
475            Boolean lhsBatchStatments;
476            lhsBatchStatments = this.isBatchStatments();
477            Boolean rhsBatchStatments;
478            rhsBatchStatments = that.isBatchStatments();
479            if (!strategy.equals(LocatorUtils.property(thisLocator, "batchStatments", lhsBatchStatments), LocatorUtils.property(thatLocator, "batchStatments", rhsBatchStatments), lhsBatchStatments, rhsBatchStatments)) {
480                return false;
481            }
482        }
483        {
484            BigInteger lhsMaxRows;
485            lhsMaxRows = this.getMaxRows();
486            BigInteger rhsMaxRows;
487            rhsMaxRows = that.getMaxRows();
488            if (!strategy.equals(LocatorUtils.property(thisLocator, "maxRows", lhsMaxRows), LocatorUtils.property(thatLocator, "maxRows", rhsMaxRows), lhsMaxRows, rhsMaxRows)) {
489                return false;
490            }
491        }
492        {
493            String lhsStatements;
494            lhsStatements = this.getStatements();
495            String rhsStatements;
496            rhsStatements = that.getStatements();
497            if (!strategy.equals(LocatorUtils.property(thisLocator, "statements", lhsStatements), LocatorUtils.property(thatLocator, "statements", rhsStatements), lhsStatements, rhsStatements)) {
498                return false;
499            }
500        }
501        {
502            Boolean lhsUseExternalMessageReferences;
503            lhsUseExternalMessageReferences = this.isUseExternalMessageReferences();
504            Boolean rhsUseExternalMessageReferences;
505            rhsUseExternalMessageReferences = that.isUseExternalMessageReferences();
506            if (!strategy.equals(LocatorUtils.property(thisLocator, "useExternalMessageReferences", lhsUseExternalMessageReferences), LocatorUtils.property(thatLocator, "useExternalMessageReferences", rhsUseExternalMessageReferences), lhsUseExternalMessageReferences, rhsUseExternalMessageReferences)) {
507                return false;
508            }
509        }
510        {
511            String lhsId;
512            lhsId = this.getId();
513            String rhsId;
514            rhsId = that.getId();
515            if (!strategy.equals(LocatorUtils.property(thisLocator, "id", lhsId), LocatorUtils.property(thatLocator, "id", rhsId), lhsId, rhsId)) {
516                return false;
517            }
518        }
519        return true;
520    }
521
522    public boolean equals(Object object) {
523        final EqualsStrategy strategy = new org.apache.activemq.plugin.jaxb2_commons.ElementAwareEqualsStrategy();
524        return equals(null, null, object, strategy);
525    }
526
527
528    /**
529     * <p>Java class for anonymous complex type.
530     * 
531     * <p>The following schema fragment specifies the expected content contained within this class.
532     * 
533     * <pre>
534     * &lt;complexType>
535     *   &lt;complexContent>
536     *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
537     *       &lt;choice minOccurs="0">
538     *         &lt;element ref="{http://activemq.apache.org/schema/core}statements"/>
539     *         &lt;any namespace='##other'/>
540     *       &lt;/choice>
541     *     &lt;/restriction>
542     *   &lt;/complexContent>
543     * &lt;/complexType>
544     * </pre>
545     * 
546     * 
547     */
548    @XmlAccessorType(XmlAccessType.FIELD)
549    @XmlType(name = "", propOrder = {
550        "statements",
551        "any"
552    })
553    public static class Statements
554        implements Equals, HashCode, ToString
555    {
556
557        protected DtoStatements statements;
558        @XmlAnyElement(lax = true)
559        protected Object any;
560
561        /**
562         * Gets the value of the statements property.
563         * 
564         * @return
565         *     possible object is
566         *     {@link DtoStatements }
567         *     
568         */
569        public DtoStatements getStatements() {
570            return statements;
571        }
572
573        /**
574         * Sets the value of the statements property.
575         * 
576         * @param value
577         *     allowed object is
578         *     {@link DtoStatements }
579         *     
580         */
581        public void setStatements(DtoStatements value) {
582            this.statements = value;
583        }
584
585        /**
586         * Gets the value of the any property.
587         * 
588         * @return
589         *     possible object is
590         *     {@link Object }
591         *     
592         */
593        public Object getAny() {
594            return any;
595        }
596
597        /**
598         * Sets the value of the any property.
599         * 
600         * @param value
601         *     allowed object is
602         *     {@link Object }
603         *     
604         */
605        public void setAny(Object value) {
606            this.any = value;
607        }
608
609        public String toString() {
610            final ToStringStrategy strategy = JAXBToStringStrategy.INSTANCE;
611            final StringBuilder buffer = new StringBuilder();
612            append(null, buffer, strategy);
613            return buffer.toString();
614        }
615
616        public StringBuilder append(ObjectLocator locator, StringBuilder buffer, ToStringStrategy strategy) {
617            strategy.appendStart(locator, this, buffer);
618            appendFields(locator, buffer, strategy);
619            strategy.appendEnd(locator, this, buffer);
620            return buffer;
621        }
622
623        public StringBuilder appendFields(ObjectLocator locator, StringBuilder buffer, ToStringStrategy strategy) {
624            {
625                DtoStatements theStatements;
626                theStatements = this.getStatements();
627                strategy.appendField(locator, this, "statements", buffer, theStatements);
628            }
629            {
630                Object theAny;
631                theAny = this.getAny();
632                strategy.appendField(locator, this, "any", buffer, theAny);
633            }
634            return buffer;
635        }
636
637        public int hashCode(ObjectLocator locator, HashCodeStrategy strategy) {
638            int currentHashCode = 1;
639            {
640                DtoStatements theStatements;
641                theStatements = this.getStatements();
642                currentHashCode = strategy.hashCode(LocatorUtils.property(locator, "statements", theStatements), currentHashCode, theStatements);
643            }
644            {
645                Object theAny;
646                theAny = this.getAny();
647                currentHashCode = strategy.hashCode(LocatorUtils.property(locator, "any", theAny), currentHashCode, theAny);
648            }
649            return currentHashCode;
650        }
651
652        public int hashCode() {
653            final HashCodeStrategy strategy = JAXBHashCodeStrategy.INSTANCE;
654            return this.hashCode(null, strategy);
655        }
656
657        public boolean equals(ObjectLocator thisLocator, ObjectLocator thatLocator, Object object, EqualsStrategy strategy) {
658            if (!(object instanceof DtoPostgresqlJdbcAdapter.Statements)) {
659                return false;
660            }
661            if (this == object) {
662                return true;
663            }
664            final DtoPostgresqlJdbcAdapter.Statements that = ((DtoPostgresqlJdbcAdapter.Statements) object);
665            {
666                DtoStatements lhsStatements;
667                lhsStatements = this.getStatements();
668                DtoStatements rhsStatements;
669                rhsStatements = that.getStatements();
670                if (!strategy.equals(LocatorUtils.property(thisLocator, "statements", lhsStatements), LocatorUtils.property(thatLocator, "statements", rhsStatements), lhsStatements, rhsStatements)) {
671                    return false;
672                }
673            }
674            {
675                Object lhsAny;
676                lhsAny = this.getAny();
677                Object rhsAny;
678                rhsAny = that.getAny();
679                if (!strategy.equals(LocatorUtils.property(thisLocator, "any", lhsAny), LocatorUtils.property(thatLocator, "any", rhsAny), lhsAny, rhsAny)) {
680                    return false;
681                }
682            }
683            return true;
684        }
685
686        public boolean equals(Object object) {
687            final EqualsStrategy strategy = new org.apache.activemq.plugin.jaxb2_commons.ElementAwareEqualsStrategy();
688            return equals(null, null, object, strategy);
689        }
690
691    }
692
693}