text:
package com.amazonaws.services.glue.model;

import java.io.Serializable;
import javax.annotation.Generated;
import com.amazonaws.protocol.StructuredPojo;
import com.amazonaws.protocol.ProtocolMarshaller;

/**
 *

 * Describes the physical storage of table data.
 *

 *
 * @see AWS API
 *      Documentation
 */
@Generated("com.amazonaws:aws-java-sdk-code-generator")
public class StorageDescriptor implements Serializable, Cloneable, StructuredPojo {

    /**
     *

     * A list of the Columns in the table.
     *

     */
    private java.util.List<Column> columns;
    /**
     *

     * The physical location of the table. By default, this takes the form of the warehouse location, followed by the
     * database location in the warehouse, followed by the table name.
     *

     */
    private String location;
    /**
     *

     * A list of locations that point to the path where a Delta table is located.
     *

     */
    private java.util.List<String> additionalLocations;
    /**
     *

     * The input format: SequenceFileInputFormat (binary), or TextInputFormat, or a custom
     * format.
     *

     */
    private String inputFormat;
    /**
     *

     * The output format: SequenceFileOutputFormat (binary), or IgnoreKeyTextOutputFormat, or
     * a custom format.
     *

     */
    private String outputFormat;
    /**
     *

     * True if the data in the table is compressed, or False if not.
     *

     */
    private Boolean compressed;
    /**
     *

     * Must be specified if the table contains any dimension columns.
     *

     */
    private Integer numberOfBuckets;
    /**
     *

     * The serialization/deserialization (SerDe) information.
     *

     */
    private SerDeInfo serdeInfo;
    /**
     *

     * A list of reducer grouping columns, clustering columns, and bucketing columns in the table.
     *

     */
    private java.util.List<String> bucketColumns;
    /**
     *

     * A list specifying the sort order of each bucket in the table.
     *

     */
    private java.util.List<Order> sortColumns;
    /**
     *

     * The user-supplied properties in key-value form.
     *

     */
    private java.util.Map<String, String> parameters;
    /**
     *

     * The information about values that appear frequently in a column (skewed values).
     *

     */
    private SkewedInfo skewedInfo;
    /**
     *

     * True if the table data is stored in subdirectories, or False if not.
     *

     */
    private Boolean storedAsSubDirectories;
    /**
     *

     * An object that references a schema stored in the Glue Schema Registry.
     *

     *

     * When creating a table, you can pass an empty list of columns for the schema, and instead use a schema reference.
     *

     */
    private SchemaReference schemaReference;

    /**
     *

     * A list of the Columns in the table.
     *

     *
     * @return A list of the Columns in the table.
     */

    public java.util.List<Column> getColumns() {
        return columns;
    }

    /**
     *

     * A list of the Columns in the table.
     *

     *
     * @param columns
     *        A list of the Columns in the table.
     */

    public void setColumns(java.util.Collection<Column> columns) {
        if (columns == null) {
            this.columns = null;
            return;
        }

        this.columns = new java.util.ArrayList<Column>(columns);
    }

    /**
     *

     * A list of the Columns in the table.
     *

     *

     * NOTE: This method appends the values to the existing list (if any). Use
     * {@link #setColumns(java.util.Collection)} or {@link #withColumns(java.util.Collection)} if you want to override
     * the existing values.
     *

     *
     * @param columns
     *        A list of the Columns in the table.
     * @return Returns a reference to this object so that method calls can be chained together.
     */

    public StorageDescriptor withColumns(Column... columns) {
        if (this.columns == null) {
            setColumns(new java.util.ArrayList<Column>(columns.length));
        }
        for (Column ele : columns) {
            this.columns.add(ele);
        }
        return this;
    }

    /**
     *

     * A list of the Columns in the table.
     *

     *
     * @param columns
     *        A list of the Columns in the table.
     * @return Returns a reference to this object so that method calls can be chained together.
     */

    public StorageDescriptor withColumns(java.util.Collection<Column> columns) {
        setColumns(columns);
        return this;
    }

    /**
     *

     * The physical location of the table. By default, this takes the form of the warehouse location, followed by the
     * database location in the warehouse, followed by the table name.
     *

     *
     * @param location
     *        The physical location of the table. By default, this takes the form of the warehouse location, followed by
     *        the database location in the warehouse, followed by the table name.
     */

    public void setLocation(String location) {
        this.location = location;
    }

    /**
     *

     * The physical location of the table. By default, this takes the form of the warehouse location, followed by the
     * database location in the warehouse, followed by the table name.
     *

     *
     * @return The physical location of the table. By default, this takes the form of the warehouse location, followed
     *         by the database location in the warehouse, followed by the table name.
     */

    public String getLocation() {
        return this.location;
    }

    /**
     *

     * The physical location of the table. By default, this takes the form of the warehouse location, followed by the
     * database location in the warehouse, followed by the table name.
     *

     *
     * @param location
     *        The physical location of the table. By default, this takes the form of the warehouse location, followed by
     *        the database location in the warehouse, followed by the table name.
     * @return Returns a reference to this object so that method calls can be chained together.
     */

    public StorageDescriptor withLocation(String location) {
        setLocation(location);
        return this;
    }

    /**
     *

     * A list of locations that point to the path where a Delta table is located.
     *

     *
     * @return A list of locations that point to the path where a Delta table is located.
     */

    public java.util.List<String> getAdditionalLocations() {
        return additionalLocations;
    }

    /**
     *

     * A list of locations that point to the path where a Delta table is located.
     *

     *
     * @param additionalLocations
     *        A list of locations that point to the path where a Delta table is located.
     */

    public void setAdditionalLocations(java.util.Collection<String> additionalLocations) {
        if (additionalLocations == null) {
            this.additionalLocations = null;
            return;
        }

        this.additionalLocations = new java.util.ArrayList<String>(additionalLocations);
    }

    /**
     *

     * A list of locations that point to the path where a Delta table is located.
     *

     *

     * NOTE: This method appends the values to the existing list (if any). Use
     * {@link #setAdditionalLocations(java.util.Collection)} or {@link #withAdditionalLocations(java.util.Collection)}
     * if you want to override the existing values.
     *

     *
     * @param additionalLocations
     *        A list of locations that point to the path where a Delta table is located.
     * @return Returns a reference to this object so that method calls can be chained together.
     */

    public StorageDescriptor withAdditionalLocations(String... additionalLocations) {
        if (this.additionalLocations == null) {
            setAdditionalLocations(new java.util.ArrayList<String>(additionalLocations.length));
        }
        for (String ele : additionalLocations) {
            this.additionalLocations.add(ele);
        }
        return this;
    }

    /**
     *

     * A list of locations that point to the path where a Delta table is located.
     *

     *
     * @param additionalLocations
     *        A list of locations that point to the path where a Delta table is located.
     * @return Returns a reference to this object so that method calls can be chained together.
     */

    public StorageDescriptor withAdditionalLocations(java.util.Collection<String> additionalLocations) {
        setAdditionalLocations(additionalLocations);
        return this;
    }

    /**
     *

     * The input format: SequenceFileInputFormat (binary), or TextInputFormat, or a custom
     * format.
     *

     *
     * @param inputFormat
     *        The input format: SequenceFileInputFormat (binary), or TextInputFormat, or a
     *        custom format.
     */

    public void setInputFormat(String inputFormat) {
        this.inputFormat = inputFormat;
    }

    /**
     *

     * The input format: SequenceFileInputFormat (binary), or TextInputFormat, or a custom
     * format.
     *

     *
     * @return The input format: SequenceFileInputFormat (binary), or TextInputFormat, or a
     *         custom format.
     */

    public String getInputFormat() {
        return this.inputFormat;
    }

    /**
     *

     * The input format: SequenceFileInputFormat (binary), or TextInputFormat, or a custom
     * format.
     *

     *
     * @param inputFormat
     *        The input format: SequenceFileInputFormat (binary), or TextInputFormat, or a
     *        custom format.
     * @return Returns a reference to this object so that method calls can be chained together.
     */

    public StorageDescriptor withInputFormat(String inputFormat) {
        setInputFormat(inputFormat);
        return this;
    }

    /**
     *

     * The output format: SequenceFileOutputFormat (binary), or IgnoreKeyTextOutputFormat, or
     * a custom format.
     *

     *
     * @param outputFormat
     *        The output format: SequenceFileOutputFormat (binary), or
     *        IgnoreKeyTextOutputFormat, or a custom format.
     */

    public void setOutputFormat(String outputFormat) {
        this.outputFormat = outputFormat;
    }

    /**
     *

     * The output format: SequenceFileOutputFormat (binary), or IgnoreKeyTextOutputFormat, or
     * a custom format.
     *

     *
     * @return The output format: SequenceFileOutputFormat (binary), or
     *         IgnoreKeyTextOutputFormat, or a custom format.
     */

    public String getOutputFormat() {
        return this.outputFormat;
    }

    /**
     *

     * The output format: SequenceFileOutputFormat (binary), or IgnoreKeyTextOutputFormat, or
     * a custom format.
     *

     *
     * @param outputFormat
     *        The output format: SequenceFileOutputFormat (binary), or
     *        IgnoreKeyTextOutputFormat, or a custom format.
     * @return Returns a reference to this object so that method calls can be chained together.
     */

    public StorageDescriptor withOutputFormat(String outputFormat) {
        setOutputFormat(outputFormat);
        return this;
    }

    /**
     *

     * True if the data in the table is compressed, or False if not.
     *

     *
     * @param compressed
     *        True if the data in the table is compressed, or False if not.
     */

    public void setCompressed(Boolean compressed) {
        this.compressed = compressed;
    }

    /**
     *

     * True if the data in the table is compressed, or False if not.
     *

     *
     * @return True if the data in the table is compressed, or False if not.
     */

    public Boolean getCompressed() {
        return this.compressed;
    }

    /**
     *

     * True if the data in the table is compressed, or False if not.
     *

     *
     * @param compressed
     *        True if the data in the table is compressed, or False if not.
     * @return Returns a reference to this object so that method calls can be chained together.
     */

    public StorageDescriptor withCompressed(Boolean compressed) {
        setCompressed(compressed);
        return this;
    }

    /**
     *

     * True if the data in the table is compressed, or False if not.
     *

     *
     * @return True if the data in the table is compressed, or False if not.
     */

    public Boolean isCompressed() {
        return this.compressed;
    }

    /**
     *

     * Must be specified if the table contains any dimension columns.
     *

     *
     * @param numberOfBuckets
     *        Must be specified if the table contains any dimension columns.
     */

    public void setNumberOfBuckets(Integer numberOfBuckets) {
        this.numberOfBuckets = numberOfBuckets;
    }

    /**
     *

     * Must be specified if the table contains any dimension columns.
     *

     *
     * @return Must be specified if the table contains any dimension columns.
     */

    public Integer getNumberOfBuckets() {
        return this.numberOfBuckets;
    }

    /**
     *

     * Must be specified if the table contains any dimension columns.
     *

     *
     * @param numberOfBuckets
     *        Must be specified if the table contains any dimension columns.
     * @return Returns a reference to this object so that method calls can be chained together.
     */

    public StorageDescriptor withNumberOfBuckets(Integer numberOfBuckets) {
        setNumberOfBuckets(numberOfBuckets);
        return this;
    }

    /**
     *

     * The serialization/deserialization (SerDe) information.
     *

     *
     * @param serdeInfo
     *        The serialization/deserialization (SerDe) information.
     */

    public void setSerdeInfo(SerDeInfo serdeInfo) {
        this.serdeInfo = serdeInfo;
    }

    /**
     *

     * The serialization/deserialization (SerDe) information.
     *

     *
     * @return The serialization/deserialization (SerDe) information.
     */

    public SerDeInfo getSerdeInfo() {
        return this.serdeInfo;
    }

    /**
     *

     * The serialization/deserialization (SerDe) information.
     *

     *
     * @param serdeInfo
     *        The serialization/deserialization (SerDe) information.
     * @return Returns a reference to this object so that method calls can be chained together.
     */

    public StorageDescriptor withSerdeInfo(SerDeInfo serdeInfo) {
        setSerdeInfo(serdeInfo);
        return this;
    }

    /**
     *

     * A list of reducer grouping columns, clustering columns, and bucketing columns in the table.
     *

     *
     * @return A list of reducer grouping columns, clustering columns, and bucketing columns in the table.
     */

    public java.util.List<String> getBucketColumns() {
        return bucketColumns;
    }

    /**
     *

     * A list of reducer grouping columns, clustering columns, and bucketing columns in the table.
     *

     *
     * @param bucketColumns
     *        A list of reducer grouping columns, clustering columns, and bucketing columns in the table.
     */

    public void setBucketColumns(java.util.Collection<String> bucketColumns) {
        if (bucketColumns == null) {
            this.bucketColumns = null;
            return;
        }

        this.bucketColumns = new java.util.ArrayList<String>(bucketColumns);
    }

    /**
     *

     * A list of reducer grouping columns, clustering columns, and bucketing columns in the table.
     *

     *

     * NOTE: This method appends the values to the existing list (if any). Use
     * {@link #setBucketColumns(java.util.Collection)} or {@link #withBucketColumns(java.util.Collection)} if you want
     * to override the existing values.
     *

     *
     * @param bucketColumns
     *        A list of reducer grouping columns, clustering columns, and bucketing columns in the table.
     * @return Returns a reference to this object so that method calls can be chained together.
     */

    public StorageDescriptor withBucketColumns(String... bucketColumns) {
        if (this.bucketColumns == null) {
            setBucketColumns(new java.util.ArrayList<String>(bucketColumns.length));
        }
        for (String ele : bucketColumns) {
            this.bucketColumns.add(ele);
        }
        return this;
    }

    /**
     *

     * A list of reducer grouping columns, clustering columns, and bucketing columns in the table.
     *

     *
     * @param bucketColumns
     *        A list of reducer grouping columns, clustering columns, and bucketing columns in the table.
     * @return Returns a reference to this object so that method calls can be chained together.
     */

    public StorageDescriptor withBucketColumns(java.util.Collection<String> bucketColumns) {
        setBucketColumns(bucketColumns);
        return this;
    }

    /**
     *

     * A list specifying the sort order of each bucket in the table.
     *

     *
     * @return A list specifying the sort order of each bucket in the table.
     */

    public java.util.List<Order> getSortColumns() {
        return sortColumns;
    }

    /**
     *

     * A list specifying the sort order of each bucket in the table.
     *

     *
     * @param sortColumns
     *        A list specifying the sort order of each bucket in the table.
     */

    public void setSortColumns(java.util.Collection<Order> sortColumns) {
        if (sortColumns == null) {
            this.sortColumns = null;
            return;
        }

        this.sortColumns = new java.util.ArrayList<Order>(sortColumns);
    }

    /**
     *

     * A list specifying the sort order of each bucket in the table.
     *

     *

     * NOTE: This method appends the values to the existing list (if any). Use
     * {@link #setSortColumns(java.util.Collection)} or {@link #withSortColumns(java.util.Collection)} if you want to
     * override the existing values.
     *

     *
     * @param sortColumns
     *        A list specifying the sort order of each bucket in the table.
     * @return Returns a reference to this object so that method calls can be chained together.
     */

    public StorageDescriptor withSortColumns(Order... sortColumns) {
        if (this.sortColumns == null) {
            setSortColumns(new java.util.ArrayList<Order>(sortColumns.length));
        }
        for (Order ele : sortColumns) {
            this.sortColumns.add(ele);
        }
        return this;
    }

    /**
     *

     * A list specifying the sort order of each bucket in the table.
     *

     *
     * @param sortColumns
     *        A list specifying the sort order of each bucket in the table.
     * @return Returns a reference to this object so that method calls can be chained together.
     */

    public StorageDescriptor withSortColumns(java.util.Collection<Order> sortColumns) {
        setSortColumns(sortColumns);
        return this;
    }

    /**
     *

     * The user-supplied properties in key-value form.
     *

     *
     * @return The user-supplied properties in key-value form.
     */

    public java.util.Map<String, String> getParameters() {
        return parameters;
    }

    /**
     *

     * The user-supplied properties in key-value form.
     *

     *
     * @param parameters
     *        The user-supplied properties in key-value form.
     */

    public void setParameters(java.util.Map<String, String> parameters) {
        this.parameters = parameters;
    }

    /**
     *

     * The user-supplied properties in key-value form.
     *

     *
     * @param parameters
     *        The user-supplied properties in key-value form.
     * @return Returns a reference to this object so that method calls can be chained together.
     */

    public StorageDescriptor withParameters(java.util.Map<String, String> parameters) {
        setParameters(parameters);
        return this;
    }

    /**
     * Add a single Parameters entry
     *
     * @see StorageDescriptor#withParameters
     * @returns a reference to this object so that method calls can be chained together.
     */

    public StorageDescriptor addParametersEntry(String key, String value) {
        if (null == this.parameters) {
            this.parameters = new java.util.HashMap<String, String>();
        }
        if (this.parameters.containsKey(key))
            throw new IllegalArgumentException("Duplicated keys (" + key.toString() + ") are provided.");
        this.parameters.put(key, value);
        return this;
    }

    /**
     * Removes all the entries added into Parameters.
     *
     * @return Returns a reference to this object so that method calls can be chained together.
     */

    public StorageDescriptor clearParametersEntries() {
        this.parameters = null;
        return this;
    }

    /**
     *

     * The information about values that appear frequently in a column (skewed values).
     *

     *
     * @param skewedInfo
     *        The information about values that appear frequently in a column (skewed values).
     */

    public void setSkewedInfo(SkewedInfo skewedInfo) {
        this.skewedInfo = skewedInfo;
    }

    /**
     *

     * The information about values that appear frequently in a column (skewed values).
     *

     *
     * @return The information about values that appear frequently in a column (skewed values).
     */

    public SkewedInfo getSkewedInfo() {
        return this.skewedInfo;
    }

    /**
     *

     * The information about values that appear frequently in a column (skewed values).
     *

     *
     * @param skewedInfo
     *        The information about values that appear frequently in a column (skewed values).
     * @return Returns a reference to this object so that method calls can be chained together.
     */

    public StorageDescriptor withSkewedInfo(SkewedInfo skewedInfo) {
        setSkewedInfo(skewedInfo);
        return this;
    }

    /**
     *

     * True if the table data is stored in subdirectories, or False if not.
     *

     *
     * @param storedAsSubDirectories
     *        True if the table data is stored in subdirectories, or False if not.
     */

    public void setStoredAsSubDirectories(Boolean storedAsSubDirectories) {
        this.storedAsSubDirectories = storedAsSubDirectories;
    }

    /**
     *

     * True if the table data is stored in subdirectories, or False if not.
     *

     *
     * @return True if the table data is stored in subdirectories, or False if not.
     */

    public Boolean getStoredAsSubDirectories() {
        return this.storedAsSubDirectories;
    }

    /**
     *

     * True if the table data is stored in subdirectories, or False if not.
     *

     *
     * @param storedAsSubDirectories
     *        True if the table data is stored in subdirectories, or False if not.
     * @return Returns a reference to this object so that method calls can be chained together.
     */

    public StorageDescriptor withStoredAsSubDirectories(Boolean storedAsSubDirectories) {
        setStoredAsSubDirectories(storedAsSubDirectories);
        return this;
    }

    /**
     *

     * True if the table data is stored in subdirectories, or False if not.
     *

     *
     * @return True if the table data is stored in subdirectories, or False if not.
     */

    public Boolean isStoredAsSubDirectories() {
        return this.storedAsSubDirectories;
    }

    /**
     *

     * An object that references a schema stored in the Glue Schema Registry.
     *

     *

     * When creating a table, you can pass an empty list of columns for the schema, and instead use a schema reference.
     *

     *
     * @param schemaReference
     *        An object that references a schema stored in the Glue Schema Registry.

     *

     *        When creating a table, you can pass an empty list of columns for the schema, and instead use a schema
     *        reference.
     */

    public void setSchemaReference(SchemaReference schemaReference) {
        this.schemaReference = schemaReference;
    }

    /**
     *

     * An object that references a schema stored in the Glue Schema Registry.
     *

     *

     * When creating a table, you can pass an empty list of columns for the schema, and instead use a schema reference.
     *

     *
     * @return An object that references a schema stored in the Glue Schema Registry.

     *

     *         When creating a table, you can pass an empty list of columns for the schema, and instead use a schema
     *         reference.
     */

    public SchemaReference getSchemaReference() {
        return this.schemaReference;
    }

    /**
     *

     * An object that references a schema stored in the Glue Schema Registry.
     *

     *

     * When creating a table, you can pass an empty list of columns for the schema, and instead use a schema reference.
     *

     *
     * @param schemaReference
     *        An object that references a schema stored in the Glue Schema Registry.

     *

     *        When creating a table, you can pass an empty list of columns for the schema, and instead use a schema
     *        reference.
     * @return Returns a reference to this object so that method calls can be chained together.
     */

    public StorageDescriptor withSchemaReference(SchemaReference schemaReference) {
        setSchemaReference(schemaReference);
        return this;
    }

    /**
     * Returns a string representation of this object. This is useful for testing and debugging. Sensitive data will be
     * redacted from this string using a placeholder value.
     *
     * @return A string representation of this object.
     *
     * @see java.lang.Object#toString()
     */
    @Override
    public String toString() {
        StringBuilder sb = new StringBuilder();
        sb.append("{");
        if (getColumns() != null)
            sb.append("Columns: ").append(getColumns()).append(",");
        if (getLocation() != null)
            sb.append("Location: ").append(getLocation()).append(",");
        if (getAdditionalLocations() != null)
            sb.append("AdditionalLocations: ").append(getAdditionalLocations()).append(",");
        if (getInputFormat() != null)
            sb.append("InputFormat: ").append(getInputFormat()).append(",");
        if (getOutputFormat() != null)
            sb.append("OutputFormat: ").append(getOutputFormat()).append(",");
        if (getCompressed() != null)
            sb.append("Compressed: ").append(getCompressed()).append(",");
        if (getNumberOfBuckets() != null)
            sb.append("NumberOfBuckets: ").append(getNumberOfBuckets()).append(",");
        if (getSerdeInfo() != null)
            sb.append("SerdeInfo: ").append(getSerdeInfo()).append(",");
        if (getBucketColumns() != null)
            sb.append("BucketColumns: ").append(getBucketColumns()).append(",");
        if (getSortColumns() != null)
            sb.append("SortColumns: ").append(getSortColumns()).append(",");
        if (getParameters() != null)
            sb.append("Parameters: ").append(getParameters()).append(",");
        if (getSkewedInfo() != null)
            sb.append("SkewedInfo: ").append(getSkewedInfo()).append(",");
        if (getStoredAsSubDirectories() != null)
            sb.append("StoredAsSubDirectories: ").append(getStoredAsSubDirectories()).append(",");
        if (getSchemaReference() != null)
            sb.append("SchemaReference: ").append(getSchemaReference());
        sb.append("}");
        return sb.toString();
    }

    @Override
    public boolean equals(Object obj) {
        if (this == obj)
            return true;
        if (obj == null)
            return false;

        if (obj instanceof StorageDescriptor == false)
            return false;
        StorageDescriptor other = (StorageDescriptor) obj;
        if (other.getColumns() == null ^ this.getColumns() == null)
            return false;
        if (other.getColumns() != null && other.getColumns().equals(this.getColumns()) == false)
            return false;
        if (other.getLocation() == null ^ this.getLocation() == null)
            return false;
        if (other.getLocation() != null && other.getLocation().equals(this.getLocation()) == false)
            return false;
        if (other.getAdditionalLocations() == null ^ this.getAdditionalLocations() == null)
            return false;
        if (other.getAdditionalLocations() != null && other.getAdditionalLocations().equals(this.getAdditionalLocations()) == false)
            return false;
        if (other.getInputFormat() == null ^ this.getInputFormat() == null)
            return false;
        if (other.getInputFormat() != null && other.getInputFormat().equals(this.getInputFormat()) == false)
            return false;
        if (other.getOutputFormat() == null ^ this.getOutputFormat() == null)
            return false;
        if (other.getOutputFormat() != null && other.getOutputFormat().equals(this.getOutputFormat()) == false)
            return false;
        if (other.getCompressed() == null ^ this.getCompressed() == null)
            return false;
        if (other.getCompressed() != null && other.getCompressed().equals(this.getCompressed()) == false)
            return false;
        if (other.getNumberOfBuckets() == null ^ this.getNumberOfBuckets() == null)
            return false;
        if (other.getNumberOfBuckets() != null && other.getNumberOfBuckets().equals(this.getNumberOfBuckets()) == false)
            return false;
        if (other.getSerdeInfo() == null ^ this.getSerdeInfo() == null)
            return false;
        if (other.getSerdeInfo() != null && other.getSerdeInfo().equals(this.getSerdeInfo()) == false)
            return false;
        if (other.getBucketColumns() == null ^ this.getBucketColumns() == null)
            return false;
        if (other.getBucketColumns() != null && other.getBucketColumns().equals(this.getBucketColumns()) == false)
            return false;
        if (other.getSortColumns() == null ^ this.getSortColumns() == null)
            return false;
        if (other.getSortColumns() != null && other.getSortColumns().equals(this.getSortColumns()) == false)
            return false;
        if (other.getParameters() == null ^ this.getParameters() == null)
            return false;
        if (other.getParameters() != null && other.getParameters().equals(this.getParameters()) == false)
            return false;
        if (other.getSkewedInfo() == null ^ this.getSkewedInfo() == null)
            return false;
        if (other.getSkewedInfo() != null && other.getSkewedInfo().equals(this.getSkewedInfo()) == false)
            return false;
        if (other.getStoredAsSubDirectories() == null ^ this.getStoredAsSubDirectories() == null)
            return false;
        if (other.getStoredAsSubDirectories() != null && other.getStoredAsSubDirectories().equals(this.getStoredAsSubDirectories()) == false)
            return false;
        if (other.getSchemaReference() == null ^ this.getSchemaReference() == null)
            return false;
        if (other.getSchemaReference() != null && other.getSchemaReference().equals(this.getSchemaReference()) == false)
            return false;
        return true;
    }

    @Override
    public int hashCode() {
        final int prime = 31;
        int hashCode = 1;

        hashCode = prime * hashCode + ((getColumns() == null) ? 0 : getColumns().hashCode());
        hashCode = prime * hashCode + ((getLocation() == null) ? 0 : getLocation().hashCode());
        hashCode = prime * hashCode + ((getAdditionalLocations() == null) ? 0 : getAdditionalLocations().hashCode());
        hashCode = prime * hashCode + ((getInputFormat() == null) ? 0 : getInputFormat().hashCode());
        hashCode = prime * hashCode + ((getOutputFormat() == null) ? 0 : getOutputFormat().hashCode());
        hashCode = prime * hashCode + ((getCompressed() == null) ? 0 : getCompressed().hashCode());
        hashCode = prime * hashCode + ((getNumberOfBuckets() == null) ? 0 : getNumberOfBuckets().hashCode());
        hashCode = prime * hashCode + ((getSerdeInfo() == null) ? 0 : getSerdeInfo().hashCode());
        hashCode = prime * hashCode + ((getBucketColumns() == null) ? 0 : getBucketColumns().hashCode());
        hashCode = prime * hashCode + ((getSortColumns() == null) ? 0 : getSortColumns().hashCode());
        hashCode = prime * hashCode + ((getParameters() == null) ? 0 : getParameters().hashCode());
        hashCode = prime * hashCode + ((getSkewedInfo() == null) ? 0 : getSkewedInfo().hashCode());
        hashCode = prime * hashCode + ((getStoredAsSubDirectories() == null) ? 0 : getStoredAsSubDirectories().hashCode());
        hashCode = prime * hashCode + ((getSchemaReference() == null) ? 0 : getSchemaReference().hashCode());
        return hashCode;
    }

    @Override
    public StorageDescriptor clone() {
        try {
            return (StorageDescriptor) super.clone();
        } catch (CloneNotSupportedException e) {
            throw new IllegalStateException("Got a CloneNotSupportedException from Object.clone() " + "even though we're Cloneable!", e);
        }
    }

    @com.amazonaws.annotation.SdkInternalApi
    @Override
    public void marshall(ProtocolMarshaller protocolMarshaller) {
        com.amazonaws.services.glue.model.transform.StorageDescriptorMarshaller.getInstance().marshall(this, protocolMarshaller);
    }
}

redpajama_set_name: RedPajamaGithub


text:
February 26, 2019, 8:27 AM ET
R. Kelly Released From Jail After 'Friend' Makes $100K Bail Payment, Immediately Goes On McDonald's Run
Court records show a 47-year-old woman from the Chicago suburb of Romeoville, Illinois, posted the $100,000 bail for the disgraced "Ignition" singer.
Digital Original R. Kelly Misconduct Allegations May Lead to Investigations
Rapper Nipsey Hussle Shot Dead In South Los Angeles
Digital Original R. Kelly Indicted on Charges of Sexual Abuse
Digital Original Tekashi69 Has Pleaded Guilty to Nine Federal Charges
Digital Original Disturbing Details of R. Kelly's Alleged Abuse of Four Victims
Digital Original A Short History of Suge Knight
Digital Original Rapper Tekashi 6ix9ine Faces Federal Charges
R. Kelly walked out of a Chicago jail Monday after posting $100,000 bail that allows him to go free while awaiting trial on charges that he sexually abused four people dating back to 1998, including three underage girls.
Hours earlier, the R&B star pleaded not guilty to the allegations after spending the weekend behind bars. He said little during the brief arraignment, telling the judge only his name. His lawyers spoke on his behalf.
The singer-songwriter was arrested Friday on 10 counts of aggravated sexual abuse. A judge set bond at $1 million, meaning Kelly had to post 10 percent of that amount to be released. Court records show a 47-year-old woman from the Chicago suburb of Romeoville, Illinois, posted the $100,000 bail and identified herself on the bond slip as "a friend" of Kelly, according to the Chicago Tribune.
Kelly will be forbidden from having any contact with females younger than 18.
The black van that took the entertainer away from the jail stopped in the parking lot of a large downtown McDonald's. He did not immediately emerge, but some members of his entourage stood outside the vehicle and a dark-colored Mercedes-Benz parked next to it.
The McDonald's, a popular tourist attraction, was known as Chicago's Rock 'n' Roll McDonald's before being remodeled and losing its music theme.
The recording artist has been trailed for decades by allegations that he violated underage girls and women and held some as virtual slaves. Kelly has consistently denied any sexual misconduct, and he was acquitted of child pornography charges in 2008.
Attorney Michael Avenatti, who said he represents two Kelly accusers, said his legal team gave prosecutors a second video Monday that shows Kelly sexually abusing a minor. Avenatti previously gave prosecutors video evidence that he said showed Kelly having sex with an underage girl.
Avenatti said the second video involves a 14-year-old girl. He said the footage from 1999 or 2000 is about 55 minutes long, but he did not say if it was the same 14-year-old girl seen in the first video he turned over to the authorities.
"The conduct in the tape can be described as nothing short of outrageous, illegal. It leaves no question as to Mr. Kelly's guilt," Avenatti said.
Avenatti said he is aware of a third tape, but he did not provide details.
Defense attorney Steve Greenberg reiterated at a news conference that Kelly has done nothing wrong and said no one has shown him any evidence to the contrary.
"Everybody is entitled to a defense. Everybody is entitled to the presumption of innocence. We should all be taking a step back. Let's see what happens, what the evidence is and how this plays out," Greenberg said.
Details of the allegations against Kelly emerged Saturday when the prosecution released four detailed documents — one for each accuser — outlining the basis for the charges. The allegations date back as far as 1998 and span more than a decade.
A girl who attended Kelly's child pornography trial in 2008 got his autograph after a court session. He later invited her to his home in the Chicago suburb of Olympia Fields, where they had sex multiple times starting the following May, when she was 16, according to the documents, which said he also slapped, choked and spit on the girl.
In 1998, another girl reported meeting Kelly at a restaurant where she was having a 16th birthday party. Kelly's manager gave her the singer's business card and suggested she call Kelly. The girl's mother heard the exchange, took the card and told the manager her daughter was 16.
But her daughter later retrieved the card from her purse. She contacted Kelly, who told her to take a cab to his studio, where they had sex periodically for a year, the documents said. After the first encounter, she was given an envelope of cash.
In early 2003, a Chicago hairdresser told prosecutors that she thought she was going to braid Kelly's hair, but he pulled down his pants and instead tried to force her to give him oral sex. The woman, who was 24, was able to pull away, but Kelly ejaculated on her and spit in her face, the documents said.
Kelly's DNA was found in semen on of of the accuser's shirts, and semen found on a shirt worn by another was submitted for DNA testing, Cook County State's Attorney Kim Foxx said. It was not clear when the accusers turned the shirts over to authorities.
Rising from poverty on Chicago's South Side, Kelly broke into the R&B scene in 1993 with his first solo album, "12 Play," which produced such popular sex-themed songs as "Your Body's Callin'" and "Bump N' Grind." He has written numerous hits for himself and other artists, including Celine Dion, Michael Jackson and Lady Gaga.
The jury in 2008 acquitted Kelly of child pornography charges that centered on a graphic video that prosecutors said showed him having sex with a girl as young as 13. He and the female allegedly seen with him denied they were in the 27-minute video, even though the picture quality was good and witnesses testified it was them, and she did not take the stand.
Each count of the new charges carries up to seven years in prison, making it possible for Kelly to receive up to 70 years. Probation is also an option.
Prosecuters Have Second Alleged R. Kelly Sex Tape
R. Kelly Pleads Not Guilty In Criminal Sex Abuse Case
Teen Instagram Star Apparently Murdered In Upstate NY

redpajama_set_name: RedPajamaCommonCrawl


I am interested in 743 Whittington Ave, Fairhope, AL 36532.
Courtesy: Calab Greene - DR Horton, Inc.
This content last refreshed on 4/24/2019 4:47 PM. Some properties which appear for sale on this web site may subsequently have sold or may no longer be available.


Transforming hotel parking from a burden to a profit center – that's one of 365 Parking's specialties. Brands work very hard to establish their identity and guest experience. 365 Parking can be an extension of your hotel brand and make your best first impression. Offering valet parking, self-parking, bellman and even concierge services, 365 Parking understands that we provide a guest experience first and parking services second. Combined with our in-depth understanding of parking industry best practices, we can drive profits to untapped levels and increase your customer satisfaction scores at the same time. It would be our pleasure to serve you.


We are specialists in Technical Inspection of Buildings (ITE).
The objective of the Technical Inspection of Buildings (ITE), is to perform a periodic technical control to ensure the good condition and conservation of buildings older than 50 years, evaluating the conditions of accessibility, decoration, safety and health regulated by the Articles 21 and 22 of Royal Decree-Law 8/2011 of July 1 and by the different municipal ordinances of localities with more than 25,000 inhabitants. Additionally to the work that need to be done, the ITE, will provide the legal time required to completed the work.
The Autonomous Communities have the authority to apply the deadlines, forms and conditions, in terms of typology or predominant use, and municipalities can establish actions within the minimum autonomic and state frameworks.
In the province of Malaga there are six municipalities that by regulation may require the owner (natural or legal person), Community of Owners or, where appropriate, another legitimate owner of a real right on the building, the technical reports resulting from the realization of the Technical Inspection of Buildings (ITE), which in any case must be done by a competent Technician.
The Technical Inspection of Buildings (ITE) refer to the entire building or real estate compound, including all premises and homes.
In the case of the report being adverse, the Technical Inspection of Buildings (ITE) will come with the Commitment of execution by the owners or owners according to the Municipal Ordinance. In addition, it will be necessary to request the corresponding municipal license to carry out the corresponding correction works. Once the works have been completed, it will be necessary to provide the final certificate of completed works endorsed by the Official School.
At AA Arquitectos y Abogados we are at your disposal for any questions. Ask us for a budget without commitment; we are happy to assist you.


text:
Past-Presidents
Distinguished Members
AUA Advocacy Summit Summary
AUA Advocacy Summit Summary – March 12-14, 2018
By John S. Lam, MD
The American Urological Association (AUA) hosted its first independent advocacy summit from March 12-14, 2018 aimed to expand, strengthen and unify the voice of urology on policy matters that impact practices and patients by bringing together a broad array of stakeholders, including patient advocates and researchers.
I attended this 3-day conference along with fellow California urologists, Drs. Peter Bretan, Hyung Kim, Robert Lurvey, Eugene Rhee, Jay Shah, Ira Sharlip, Jeremy Shelton, Aaron Spitz, as well as fellows, residents, and medical students. The summit opened with a grassroots lobbying training session for those new to the process, as well as a session for those who are seasoned advocates.
What's been happening on Capital Hill? In February, Congress repealed the Independent Payment Advisory Board or IPAB, committed to increase NIH funding by $2 B/2 years, passed improvements to MACRA/MIPS, Reauthorized CHIP for 10 years (longest in program's history), increased debt limit into 2019, raised budget caps for FY18 and FY19, passed Medicare extenders legislations, and confirmed Alex Azar as HHS Secretary.
Tucker Carlson, host of Tucker Carlson Tonight and founder of The Daily Caller delivered the luncheon keynote address. Mr. Carlson gave a witty, engaging and non-partisan talk about the volatility of the current political landscape, including the 2016 general election, and he pointed out a need for accountability in politics.
The first general session was about prostate cancer advocacy and Dr. David Penson moderated the session with panel members who represented the R. Frank Jones Urological Society, the Society of Urology Oncology and Prostate Cancer International. Dr. Penson gave an introductory talk on the United States Preventive Services Task Force (USPSTF) Transparency and Accountability Act and PSA-based screening for prostate cancer. He reviewed the 3 large PSA-based screening trials. Conflicting results of the U.S. and European trials have led to considerable controversy and ambiguous recommendations about PSA screening. Now, in a third major trial (Martin et al. Effect of a Low-Intensity PSA-Based Screening Intervention on Prostate Cancer Mortality The CAP Randomized Clinical Trial. JAMA. 2018), which is the parent study of the Prostate Testing for Cancer and Treatment (ProtecT) trial, showed that among practices randomized to a single PSA screening intervention vs. standard practice without screening, there was no significant difference in prostate cancer mortality after a median follow-up of 10 years. This was a large trial in which U.K. investigators randomized 573 primary care practices to offer eligible men (age range, 50–69) either a single PSA screening or usual care. Each group included approximately 200,000 men, and about a third of the intervention group underwent PSA testing. Dr. Penson's analysis was that this was a flawed study because it was not a study of screening versus no screening, but rather a study of a whole lot of screening versus some screening. Furthermore, a median follow-up of 10 years is "insufficient" to evaluate prostate cancer–specific mortality.
Dr. Penson cited several studies that showed that the number needed to screen and number needed treat to prevent one prostate cancer death decreased with longer term follow up supporting the need for PSA-based screening under the auspices of shared decision making. Under the Affordable Care Act, any preventative service that receives a "A" or "B" grade from the USPSTF must be covered by Medicare with no co-payment from the beneficiary, whereas "cost-sharing" is explicitly allowed for services that receive a "C", "D" or "I" grade. The language, as written, opens the door for private payers and Medicare to deny coverage for services with a "C", "D" or "I" grade on a case-by-case basis. Dr. Robert Waterhouse discussed the background of the USPSTF and it's 2017 draft recommendations on PSA-based screening, and the response by the AUA. Dr. Isaac Powell delivered a talk on health care disparities related to prostate cancer and presented data showing genetic differences in prostate cancer between white and black men, and that genetic signatures can be developed to predict aggressiveness of disease in these at-risk populations. Dr. Peter Carroll gave a talk on active surveillance and the role that PSA density, genomics and multi-parametric MRI may play in identifying men who need treatment. Dr. Matthew Resnick gave a talk on determining cost-effectiveness (value) and that more judicious use of prostate cancer diagnosis and treatment improves value. Mr. E. Michael Scott from Prostate Cancer International gave a presentation on the importance of working together for advocacy and the most successful advocacy avoids legislation.
The subsequent session on workforce was led by Dr. Patrick McKenna of the Society of Academic Urologists, and featured speakers from the Society of Women in Urology, the Society of Urologic Nurses and Associates and the Urological Association of Physician Assistants, along with special guest speaker Dr. Janis Orlowski, chief health officer for the Association of American Medical Colleges (AAMC). Dr. Dolores Lamb gave a talk on women in the urology workforce. She presented data that showed urology has lowest percentage of women physicians of any medical specialty, but the number of female entrants continues to grow. Female urologists are also compensated less and often "pigeon-holed" into a certain type of practice. The role of advanced practice providers (APPs) and physician assistants in the urologic/surgical setting were discussed by Susanne Quallich, PhD, NP-C and Jessica Nelson, MPAS, PA-C, respectively. Dr. Orlowski gave a talk on latest statistics on the health care workforce from the AAMC.
Concurrent breakout sessions addressed health care payment reform, the business of medicine and research advocacy. AUA Research Council Chair Dr. Aria Olumi moderated the four-person panel on research advocacy, while Dr. C.J. Stimson led the panel on health care payment reform and AUA Practice Management Committee Chair Dr. Jay Motola served as moderator for the Business of Medicine session.
Following a full first day of programming, the second day started with a networking breakfast that focused on key advocacy priorities that were led by Drs. Tom Rechtschaffen, Kevin Koo, Chris Gonzalez, Amanda North, Jason Jameson, Josh Langston, Aria Olumi, Toby Chai, C.J. Stimson and Deepak Kapoor.
Morning sessions focused on Men's Health and advocacy for men's access to the full continuum of care, as Sexual Medicine Society of North America (SMSNA) moderators Drs. Run Wang and Ira Sharlip led a panel featuring representatives not only from the SMSNA, but also the Men's Health Network and Mr. Carlos Basurto, a prostate cancer survivor. Together with his wife Olivia, Mr. Basurto shared his poignant story of survivorship and his experience with sexual dysfunction after prostate cancer treatment.
Surgical quality improvement was the subject of the second panel for the day, moderated by Dr. Eugene Rhee. Following presentations about surgical quality improvement and the role of assessment tools, such as video, we then heard from world champion quarterback, broadcaster and entrepreneur Joe Theismann, who gave an inspiring presentation about self-improvement as an athlete and how these skills can be translated to surgeons.
Following special panel breakout sessions on physician burnout, shared decision-making in prostate cancer, and bladder health conditions that were moderated by Drs. Deborah Lightner, John Lynch, and Toby Chai, respectively, we headed to Capitol Hill for a full afternoon of meetings with lawmakers that included the offices of Senators Dianne Feinstein and Kamala Harris as well as Representatives Jared Huffman, Brad Sherman, Doris Matsui, Anna Eshoo, Zoe Lofgren, Ted Lieu, Mimi Walters, Scott Peters, and Juan Vargas. This year there were five issues/requests that we discussed with lawmakers and their staffs.
The first request was for Representatives to cosponsor H.R. 539, the "USPSTF Transparency and Accountability Act," introduced by Reps. Marsha Blackburn (R-TN) and Bobby Rush (D-IL), includes critical reforms that would require the USPSTF to:
Publish research plans and make available reports on such evidence and recommendations for public comment;
Ensure medical specialty physicians are consulted;
Establish a stakeholders board to ensure input on developing, updating, publishing and disseminating evidence-based recommendations;
Codify the current grading system so it can't be changed without review; and
Ensure that Medicare or other payers cannot deny payment for a preventive service solely based on the task force grade.
Urology is specifically concerned about the USPSTF's 2012 recommendation related to prostate-specific antigen (PSA) based screening for prostate cancer for all men, regardless of risk. The AUA supports a man's right to be tested for prostate cancer – and to have his insurance pay for it, if medically necessary, and if he decides to do so following a detailed conversation with his physician about the benefits and harms of screening. The AUA is concerned that the 2012 recommendation does not recognize the appropriate screening needs for high-risk individuals and may perpetuate the current disparities, especially for African American men.
The second request was to address the workforce shortages in urology and other specialties that will jeopardize access to care by cosponsoring the bipartisan "Resident Physician Shortage Reduction Act" (H.R. 2267 / S. 1301) introduced by Representatives Joseph Crowley (D-NY) and Ryan Costello (R-PA); and Senators Bill Nelson (D-FL), Dean Heller (R-NV), and Charles Schumer (D-NY) that will improve the nation's GME system and help to preserve access to specialty care by:
Increasing the number of Medicare GME residency slots by 15,000 over the next five years;
Directing half of the newly available positions to training in shortage specialties;
Prioritizing distribution of new slots (e.g., states with new medical schools); and
Studying strategies to increase the diversity of the health professional workforce.
Urology has been identified by several national surveys as a specialty that is facing a future physician deficit. Furthermore, an aging population that will require more urologic care and a desire to provide greater access to health care through the Affordable Care Act compounds this deficit.
The third request was to be an original co-sponsor to the bill to be introduced by Rep. Donald Payne Jr. to create an Office of Men's Health within the U.S. Department of Health and Human Services, which would:
Coordinate public awareness, programs, and activities related to male health, including prostate cancer, diabetes, colorectal cancer, cholesterol, and mental health screening programs, for men identified as being at increased risk for these diseases;
Support comparative effectiveness review related to these diseases; and
Establish a clinical registries database to assess and measure quality improvement of programs and activities relating to male health.
Over the past decade, men have shown poorer health outcomes than women across all racial and ethnic groups as well as socioeconomic status. Common urological conditions impacting men that would benefit from improved coordination of public awareness and screening programs include prostate cancer, bladder cancer, and erectile dysfunction.
The fourth request was to ask for increased funding in Fiscal Year (FY) 2019 for the Department of Defense (DoD) Congressionally Directed Medical Research Programs (CDMRP) as numerous urologic conditions benefit each year from CDMRP funding.
The last request was to take the following actions to reduce burden related to the use of certified electronic health record (EHR) techology (CEHRT):
Encourage the Office of the National Coordinator for Health Information Technology (ONC) to examine the high cost of operating and upgrading CEHRT, specifically focusing on: 1) the financial and administrative burden on physician practices, hospitals, and health systems for routine upgrades to certified electronic health record technology (CEHRT), as well as for ongoing maintenance and operations; 2) the cost drivers that contribute to vendors' escalating fees; and 3) potential solutions to mitigate the amount and frequency of ongoing fees from CEHRT vendors.
Cosponsor S. 2059, the "EHR Regulatory Relief Act," introduced by Sens. John Thune (R-SD), Lamar Alexander (R-TN), Richard Burr (R-NC), Mike Enzi (R-WY), Pat Roberts (R-KS), and Bill Cassidy, MD (R-LA). The EHR Regulatory Relief Act would make permanent a 90-day reporting period for the Advancing Care Information performance category of the Merit-based Incentive Payment System (MIPS) and provide flexibility for scoring under that category, to include removing the "all-or-nothing" approach.
The passage the American Recovery and Reinvestment Act of 2009 created policy requirements and financial incentives for clinicians to adopt and meaningfully use CEHRT. Costs associated with upgrades to HER systems as well as with maintenance and routine operations are substantial and create a significant burden on physician practices. S. 2059 seeks to lessen the burden on healthcare providers by shortening the reporting period for eligible physicians and hospitals from 365 days to 90 days and dropping the threshold from 100 percent to 70 percent of the required metrics.
Following all the meetings, we heard from Congressional representatives and physicians, Raul Ruiz (D-CA-36) and Neal Dunn (R-FL-2) during an evening reception on Capitol Hill.
The third and final day wrapped with a presentation on the USPSTF and testicular self-exam by Dr. Ajay Nangia representing the Society for the Study of Male Reproduction. The USPSTF has given testicular cancer screening a 'D' rating. Dr. Nangia discussed the methodological flaws and a lack of evidence for this rating, and that the D rating contrasts with the widely held support of testicular screening among practitioners. North Carolina Representative and urologist, Dr. Greg Murphy, gave a talk on the value of state advocacy and Dr. Gary Kirsh gave a talk on the advocacy efforts of the Large Urology Group Practice Association (LUGPA).
We also heard a session moderated by Dr. Jeremy Shelton on veteran's affairs issues from Dr. Jeffery Jones representing the Urological Society for American Veterans and House VA Committee Chair Rep. Phil Roe, MD (R-TN-1), and health policy efforts from the House Energy & Commerce Committee Ranking Member Frank Pallone (D-NJ-6) and House Ways & Means Committee member David Schweikert (R-AZ-6).
The last general session was on advocacy for intersex and disorders of sexual development that was moderated by Dr. Lane Palmer from the Societies for Pediatric Urology. There is a Senate Concurrent Resolution in the California legislature that should be of special interest to California urologists. SCR 110 (Wiener) Sex characteristics, is a measure that would, among other things, call upon stakeholders in the health professions to protect children born with variations of sex characteristics from nonconsensual, medically unnecessary surgeries. The CUA has lobbied for and received support from the California Medical Association to prevent a moratorium on early surgery for intersex conditions.
Lastly, we heard brief discussion on a hot-button policy issue presented by Drs. Eugene Rhee and Aaron Spitz involving the National Institute for Occupational Safety and Health (NIOSH) on drugs proposed for placement on the NIOSH List of Antineoplastic and Other Hazardous Drugs in Healthcare Settings, 2018 (List), as well as the NIOSH Policy and Procedures for Developing the NIOSH List of Antineoplastic and Other Hazardous Drugs in Healthcare Settings. The situation with compounding drugs and subsequently more stringent requirements for handling make these lists of drugs untenable in 5 primary issues:
Costs of delivery of this care
Cost to install this new mixing/ventilation systems are prohibitive
Many physicians lease their offices and will not be allowed to install new ventilation systems and may have to find alternative office sites
Access to the care needed particularly rural areas
The provision of standard cancer care for prostate and bladder cancer will not be possible in many of the locations it is currently done
Quality of care as patients will decline further care in light of lack of availability
Unnecessary regulatory burden to US practices irrespective of type of practice in light of the paucity of evidence
Some of the medications on the list considered theoretically "harmful" but there is little chance of exposure. For instance, many of the prostate cancer injections come in self-contained packaging and there is little to no possibility of exposure to the health care provider in preparing and administering these meds
The USP 800 Hazardous Drug List includes drugs prescribed by all specialties in the care of patient and their treatment. Urology is not the only specialty affected
© 2022 Western Section AUA | Powered by Beaver Builder


text:
Fun and Fruit
My review for Good Reads with Ronna, where you can find the latest and greatest in children's literature.
Fun and Fruit by Maria Teresa Barahona
Written by Maria Teresa Barahona
Illustrated by Edie Pijpers
Translated by Jon Brokenbrow
Fun and Fruit is a tale about sisters Charlotte and Claire who live surrounded by magical trees which grew wonderful fruits with thousands of different colors and aromas. They devise a game in which over the course of a week, they pick a color a day, think of fruits with that color, create stories based on the fruits, and eat the fruits as snacks. On Friday the color was green, and Charlotte told her sister why pears were her favorite fruit. "When I eat them, I close my eyes and feel little sparkling stars in my mouth that make me dream." Claire thought about grapes. "They're little, they're always cuddled up close together, and they remind me of the friends I always want to be with," she said. Charlotte and Claire include their friends in their game, and all have a good time eating the healthy snacks.
The artwork by Edie Pijpers is just darling and the bright, bold colors really capture the essence of the story. The page with the children making a fruit-infused milk shake had me practically salivating: the colors are so lush and the food looks scrumptious. The illustrations of the magical fruit trees and the birds with music notes are delightful, and the moon as a banana shining over a landscape of fruit put a smile on my face. The simplicity of the children's features, which adds to the innocence of the storyline, also drew me in.
I must mention that I feel there were lost opportunities here. With the push for diverse books and multicultural inclusion within the United States' children's book industry, I really wish that the characters' Spanish names had been kept. When I'm reading a story about Spanish children living in Spain, I want to see Carlota, Clara, Emilia, and Josue, not Charlotte, Claire, Emily, or Josh. Keeping the original names would have added to the authenticity. Also, I think it would have been ideal to include Spanish words and phrases, as many parents and teachers look for opportunities to incorporate another language into children's education. For example, when mentioning apples, it would have been opportune to say manzanas, for oranges, naranjas, for red, rojo, and so on. However, Fun and Fruit is a story that emphasizes creativity, as well as healthy eating, and is worth reading.
Watch the book trailer by clicking here.
On a related note, another of Cuento De Luz's titles,
Cyparissus, features incredible, whimsical artwork
by Sonja Wimmer that is worth a look.
art, books, children, childrens books, creativity, Edit Pijpers, fruit, fun, games, Good Reads with Ronna, healthy, imagination, Jon Brokenbrow, kidlit, literature, Maria Teresa Barahona, nutrition, Ronna mandel, Spain, Spanish
Duck & Goose Go to the Beach
From my review on goodreadswithronna, where you can find the latest and greatest in children's literature and educational products.
It's summer, and Duck is eager to explore. Goose, however, is reluctant to leave their perfect little meadow with its tree stump, hollow log, stream, lily pond, and shady thicket.
"A TRIP? A trip sounds far away. I like close…An adventure? That sounds scary," Goose honks.
But Duck is determined, and Goose grumpily follows him on their hike. When they arrive at the beach, Duck gets more than he bargained for. The waves are loud, the sand is hot, the ocean is big, and the beach dwellers are different. The beach isn't what Duck expected, but it isn't what Goose expected either, and, suddenly, he's up for the adventure!
Goose stared at the vast stretch of sky, sand, and sea. "Isn't it magnificent?" he said.
"Oh dear, the beach has SO MUCH water," quacked Duck. "I feel tiny."
"Have you ever seen SO MUCH sand?" honked Goose.
"It's getting in my feathers, and it's too hot on my feet," said Duck. "Let's go."
"Go swimming? Good idea, Duck!" said Goose, and he raced to the water's edge.
Duck & Goose Go to the Beach is a story of many levels. It presents the idea of having an adventure and doing something new. It deals with facing fears and being open to changing your mind. It's a fun summer read. Most of all, it is charming and humorous. Duck and Goose are adorable characters. They are who they are, and that trait is so appealing to young readers (and their parents).
The oil paint artwork is almost too cute. The images of the feathered friends running down the hill and peeking over the sand dune are picture perfect. The artwork adds to the massive appeal of the book.
Whether they're in a meadow, at the beach, or in your home, your kids will delight in Duck and Goose.
Beach, books, childrens books, Duck, friendship, Goodreadswithronna, Goose, Ronna mandel, summer, Tad Hills
Churchill's Tale of Tails
Taken from my review at http://www.goodreadswithronna.com, where you can find the latest and greatest in children's books and educational products.
Churchill's Tale of Tails by Anca Sandu is reviewed by Rita Zobayan.
In Churchill's Tale of Tails, a new picture book by Anca Sandu (Peachtree Publishers, 2014; $16.95; ages 4-8) readers meet Churchill, a rather sophisticated pig. He likes to take tea, paint self portraits (lots of them,) and play classical music. He is also quite a proud pig, especially of his tail. It wasn't a big tail. It wasn't a fancy tail. It wasn't even a very practical tail. But it was his tail, and it made him feel great.
So when Churchill loses his tail, he isn't happy. His friends, Billy and Gruff, try to help by finding other tails for Churchill to try. There are so many tails—zebra, peacock, fish, and more—and they make him feel so different and wonderful that Churchill no longer has time for his friends. A tail from the fish made Churchill feel fantastic! He could do things he'd never done before. "Churchill never talks to us anymore. It's all these fancy tails."
Will Churchill realize he's being a bad friend? Will he find his own tail? Does he even want it back? This delightful tale will engage readers for the creativity of the story, the humorous artwork, and the moral. Does trying to be different mean that you forget your true friends? Anca Sandu answers this question in a realistic and sweet manner that young children will enjoy and understand.
Anca Sandu, books, childrens books, creativiity, friendship, Goodreadswithronna, humor, kidlit, Peachtree, pig, tails, tale


text:
Q: Trying to use Mpir.NET with F# on linux I want to use Mpir.NET with F# (4.5) on Ubuntu 18.04, using dotnet on the command line.  Not successful. If there is an easier way to use Mpir.NET on F# linux, please advise.
Followed dotnet instructions at
https://learn.microsoft.com/en-us/dotnet/fsharp/get-started/get-started-command-line.
The example project using the Newtonsoft.Json package worked fine
When I build a project to test Mpir.NET, I get an error as described below.
dotnet new sln -o MpirProj
dotnet new console -lang F# -o src/App

replaced src/App/Program.fs with program from Mpir.NET documentation:
open Mpir.NET

let a = 756749075976907490175905790287846502134Z
let b = 529134916478965674697197076070175107505Z
let c = a*b
printfn "%O" c

 dotnet add src/App/App.fsproj package Mpir.NET

I get the following info/warn message:

warn : Package 'Mpir.NET 0.4.0' was restored using
  '.NETFramework,Version=v4.6.1' instead of the project target framework
  '.NETCoreApp,Version=v2.1'. This package may not be fully compatible
  with your project. info : Package 'Mpir.NET' is compatible with all
  the specified frameworks in project 'src/App/App.fsproj'. info :
  PackageReference for package 'Mpir.NET' version '0.4.0' added to file
  '/home/doug/f#favs/MpirProj/src/App/App.fsproj'.

dotnet sln add src/App/App.fsproj

the resulting App.fsproj file is :
<Project Sdk="Microsoft.NET.Sdk">

  <PropertyGroup>
    <OutputType>Exe</OutputType>
    <TargetFramework>netcoreapp2.1</TargetFramework>
  </PropertyGroup>

  <ItemGroup>
    <Compile Include="Program.fs" />
  </ItemGroup>

  <ItemGroup>
    <PackageReference Include="Mpir.NET" Version="0.4.0" />
  </ItemGroup>

</Project>

do the build
dotnet build

messages

/home/doug/f#favs/MpirProj/src/App/App.fsproj : warning NU1701:
  Package 'Mpir.NET 0.4.0' was restored using
  '.NETFramework,Version=v4.6.1' instead of the project target framework
  '.NETCoreApp,Version=v2.1'. This package may not be fully compatible
  with your project.   App ->
  /home/doug/f#favs/MpirProj/src/App/bin/Debug/netcoreapp2.1/App.dll
Build succeeded.

When I run, see error messages below
~/f#favs/MpirProj/src/App$ dotnet run

messages

/home/doug/f#favs/MpirProj/src/App/App.fsproj : warning NU1701:
  Package 'Mpir.NET 0.4.0' was restored using
  '.NETFramework,Version=v4.6.1' instead of the project target framework
  '.NETCoreApp,Version=v2.1'. This package may not be fully compatible
  with your project. /home/doug/f#favs/MpirProj/src/App/App.fsproj :
  warning NU1701: Package 'Mpir.NET 0.4.0' was restored using
  '.NETFramework,Version=v4.6.1' instead of the project target framework
  '.NETCoreApp,Version=v2.1'. This package may not be fully compatible
  with your project.
Unhandled Exception: System.TypeInitializationException: The type
  initializer for 'Mpir.NET.mpir' threw an exception. --->
  System.Exception: MPIR: can't determine path to the xmpir.so    at
  Mpir.NET.mpir.LocateLibrary(String name)    at
  Mpir.NET.mpir.GetXMPIRLibraryPath()    at
  Mpir.NET.mpir.initialize_hxmpir()    at Mpir.NET.mpir..cctor()    ---
  End of inner exception stack trace ---    at
  Mpir.NET.mpir.mpz_init_set_str(String str, UInt32 _base)    at
  Mpir.NET.NumericLiteralZ.FromString(String s)    at
  .$Program.main@() in
  /home/doug/f#favs/MpirProj/src/App/Program.fs:line 3

A: You are seeing this issue because the package is for .NET Framework, but you're building and running on .NET Core on Ubuntu. Referencing .NET Framework .dlls for compatibility only works on Windows (if it works elsewhere that's basically just coincidental).
I recommend requesting that the package be updated to support .NET Core, or finding a .NET Core-compatible alternative.

A: I tried Mpir.NET on windows 10, and the execution time was much slower than using F# bigintegers.
I like many things about F#, but the bigintegers are just slow, and there does not appear to be an alternative.
The best time I got on a Pollard rho factorization problem with F# was 28 seconds.  Using the exact same algorithm on Ocaml (Windows 10, Ubuntu, and Fedora), the elapsed time was 10 seconds on all of them.

redpajama_set_name: RedPajamaStackExchange


All SSSFN job opportunities will be posted on this webpage. Please check back regularly for updates.
All applications for the SSSFN are handled centrally at at our Drayton office. PLEASE DO NOT POST/HAND IN APPLICATIONS TO ANY OTHER BASES OF THE SHORT STAY SCHOOL.


Simeon Tuitt Smart Home Video META TAG Service Allows You To Have Your Product Name Included In The Title Of Sims Video/s. People Always Search Social Media For A Video Or Review Before They Buy A Product, So Have A Video Of Sim Showing Your Product Found Top Of Searches To Help Convert Them Into Buyers. If You Are Selling A Smart Home Product, Your Market Are Smart Hoe Enthusiasts And DIYers Who Have Specific Needs, Failing To Have Your Product Showcasing What They Require Will Result In Lost Sales.


A walking holiday in north Cyprus offers a rare chance to experience the uniqueness of this beautiful country.
The absence of mass tourism is wonderfully evident when you find yourself on deserted mountain tracks, or quiet sandy beaches lapped by the clear azure Mediterranean.
Fly to North Cyprus and transfer to the Lapida Hotel.
Return to the hotel for free time.
08:30 start to walk via goat path. Finish the walk in Lapta Village, free time to explore the village centre, visit the historical church and building have some information about area from the guide and walk to hotel.
Start at 9:30 from Hotel go to Bellapis village.
Following the visit the Abbey, continue to Kyrenia and visit the 13th century Kyrenia Castle.
Free time in Kyrenia and return to your hotel in the afternoon.
Tour includes transportation, English speaking guide and museum entrance fees.
Finish your walk in Karmi Village centre at Church Garden, free time to see this beautiful village.
Meet at 16:00 and return to the hotel.
Finish the walk at St. Hilairon Castle, free time to visit the castle.
15:30 pick up from St Hilarion Castle to return to your hotel.
Return Airport transfers to and from Ercan Airport.


Outbreaks of gastroenteritis in care facilities, children's services centres, camps and food premises are investigated by the department and local government Environmental Health Officers.
The Guidelines for the investigation of gastroenteritis for Environmental Health Officers have been produced to assist council officers in the investigation of sporadic cases and outbreaks of gastroenteritis.
The industry specific guides are designed to assist facilities in notifying and managing outbreaks as well as providing the required outbreak details to the investigating officer and the department.
Industry specific guides are available for care facilities, (aged care, hospitals, residential care facilities, disability group homes, etc.), children's services centres, (child care centres, pre-schools, kindergartens, family day care, children's play centres, etc.) and recreational camps.
The Guidelines for the investigation of gastrointestinal illness (1998), reviewed and amended in 2010, has now been updated and re-drafted to include best practice infection control recommendations and further detailed information for the investigation of sporadic cases of gastroenteritis and food or water borne outbreak investigations.
The three industry specific guides contain much of the information included in the main guide for Environmental Health Officers, but have been written specifically for proprietors, managers, infection control practitioners of care facilities, children's services centres, camps and related facilities.
If you suspect that a gastrointestinal outbreak is occurring at your facility or premises, you will need to notify the department on telephone 1300 651 160 and refer to the industry specific guide relevant to your business for cleaning and control measures.
Guidelines for the investigation of gastroenteritis for Environmental Health Officers.
A guide for the management and control of gastroenteritis outbreaks in care facilities.
A guide for the management and control of gastroenteritis outbreaks in children's services centres.
A guide for the management and control of gastroenteritis outbreaks in camp facilities.
Gastro is common in young children and spreads easily.
Animal faeces can contain Campylobacter, which can be transmitted to people.
Cryptosporidiosis occurs when the parasites are transmitted from animals to people.
People can get salmonellosis from animals if they do not wash their hands after handling them.
The Gastro-Info Kit is a resource kit to assist residential aged care facilities in the event of a gastroenteritis outbreak. It is not a set of guidelines to manage an outbreak of gastroenteritis.
Guidelines for the public health management of gastroenteritis outbreaks due to norovirus.


Wildland fires are occurring more frequently and affecting more of Earth's surface than ever before. These fires affect the properties of soils and the processes by which they form, but the nature of these impacts has not been well understood. Given that healthy soil is necessary to sustain biodiversity, ecosystems and agriculture, the impact of fire on soil is a vital field of research.


text: ps ax | grep java | grep -i QuorumPeerMain | grep -v grep | awk '{print $1}' | xargs kill -SIGTERM


Rising's Risk Modeling turns volumes of unwieldy claims data into patterns that drive action, early.
Understand Yesterday. See Today. Act on Tomorrow.
Rising's risk modeling moves analytics power further upstream in the claim lifecycle, so proactive interventions can have a greater impact on emerging trends, employee health, and claim outcomes.


SUMMER 2019. In the center of Sutomore , just 300 meters from the main beach, 6-8min. walking on the flat (Spich field) is Vila ''Gajić".
Location Vile, Gajic " is extremely convenient: 250 meters from the bus station, 450 meters from the Railway station and 37 km from the Podgorica Airport. From Villa "Gajić", 25 meters away, there is a supermarket. There is a restaurant next to it. Also,on other side of villa is one more, restaurant of local cuisine. At 200m, on the highway there is a megamarket "Voli" with a large product range , and at 150 m from Villa "Gajić" a mega market "Aroma" and market. Also, it is important for you to 150 m, when you head the main street to the beach, is the Health Center.
- also parking places in front of house.
I 2015. dolazimo. Mesto savrseno za odmor.


text:
Kimbra Puts On Otherworldly Show at Brooklyn Steel, Calls Out Grammys President
TUESDAY, JANUARY 30, 2018 |
Posted by: Elissa Fertig
Last night, Monday January 29th, Kimbra played at Brooklyn Steel here in New York City, wearing a black and white striped tunic with a skirt that parted like wings as she flew around the stage, bopping and laughing and singing in what turned out to be a truly ethereal show.
This photo represents everything I felt tonight. Thankyou New York. A truly magic show. You gave so much x @brooklynsteel @nitemind @eyeseeld @kaspermohr @oakesonearth @spencerzahn @timonnbmartin @bexsheers @katequackin @phelannnnn @arcirismusic @weareking photo by @mulographynyc
A post shared by Kimbra (@kimbramusic) on Jan 29, 2018 at 10:07pm PST
We got warmed up with the opener KING, an alternative R&B group that appeared glossily in all-matching white outfits and crooned to us with a series of groovy and soulful tunes that seemed to melt into each other one after the other, like a funky jam band from an alternate universe. It felt like the perfect thing to get people psyched for Kimbra's deeper, more amped-up sound.
I was immediately impressed by Kimbra's stage presence. She has a fairy-like appearance, with long hair that she shakes around on stage and a voice that gushes to fill up the whole room. She started playing her way through the setlist, one song melding into the next, a lot of remixes and funky versions of her popular hits. She even mentions this at one point, saying, "Hope you don't mind the weird versions of songs!" and it's safe to say the crowd definitely didn't mind.
In anticipation of her new album Primal Heart coming out on April 20th, she played some songs we'd never heard before. A few notable ones were "The Good War" and "Black Sky" which you can look out for in the spring, beautiful and interesting tracks that echoed, bopped and swirled around the stage. Sometimes light enough to dance to, sometimes heavy enough to warrant dark stage lighting and Kimbra in the middle with her arms out and hair long, looking melancholy. Her band, including contributing pop artist Arc Iris who rocked it on the synth, was hidden behind two white, thinly sheeted boxes that gave the appearance that Kimbra was performing in front of rolling fog.
In the middle of what felt like a performance from rock 'n' roll Middle Earth, she brought us back to reality to discuss some of the Grammys drama and fallout that has been happening since yesterday. "I wish the Grammys president could be here tonight so he could see all these women stepping up!" she said, referring to herself and the KING, a group of three African American women who absolutely rocked it. Oh hell yes, Kimbra.
The rest of the performance continued, Kimbra dancing with her deeply soulful voice, taking it back to some of her older songs like "Settle Down" and "As You Are". At one point she picked up a guitar to perform a song off her new album that was a lot more acoustic, just her and the strings. "I need all the encouragement I can get," she told the crowd nervously as she started to play, but she didn't need it. The intimate song was probably my favorite of the whole set.
She rounded it off with a performance of "Top of the World". The lights flashed and the crowd went totally wild as she rocked it in her black and white outfit and black platform heels, a crazy purple and blue light show in the background and the slightly creepy synth and bass. It was a little like seeing a show from an alien world, but if this is what other dimensions rock out to on their typical Monday night, I am so there.
post: 20 Songs To Listen To When You Are Dating a Cheater
video: MO - XXX 88 ft Diplo


Barnside Collection Media Tower Rustic warmth with a streamlined modern design embodies the Barnside Collection.
The remarkable rough hued wire brushed finish exposes the unique grain and accentuates the cozy weathered allure of this charmingly crafted collection. Constructed of poplar solids and veneers complemented with a weathered aged barnside finish and accessorized with pewter finished hardware. The Media Tower features a plank slat-style design, four shelves, and one storage drawer. Assembly required. Finish and measurements may vary slightly. Size: 24.75w 17.25d 68h.


Provided here are the conditions file and timing script for a simple DMS (Delayed-Match-to-Sample) task. The subject sees a picture, and then must select that picture from two choices presented after a brief delay. Note that the inter-trial-interval is set in the main menu, and the timing script controls only the within-trial events.
These files are available in a zip folder, along with four sample stimuli. All these files should be placed into an experiment directory (e.g., named "dms_task"). Once the conditions file is loaded from the main menu, the appropriate options set, and a data file name entered, the run button should become active. To run this task, X & Y eye inputs must be defined in the main menu (because it uses the acquirefix and holdfix options of the eyejoytrack command, which expect an eye-signal, as described in the timing script section), although a joystick may be connected, or no actual hardware at all. In addition, an output should be selected for the reward. Note: if using a joystick to play the task, some of the times may need to be increased to account for slower reaction times and movements of a joystick compared to saccades, for which this code was written.
This file is structured so that the sample is always TaskObject#2 and the target is TaskObject#3, while the distractor is TaskObject#4. This organization makes writing the timing file very straightforward, as all it needs to do is display TaskObject #1 (the fix-spot), then display TaskObject #2 (the sample), then after extinguishing TaskObject #2 and a subsequent delay, it puts up TaskObjects #3 and #4. So long as the subject chooses TaskObject #3, the timing script knows s/he has chosen correctly - without knowing anything about the actual stimuli themselves.
Three blocks are defined: running blocks 1 or 2 will use stimuli A & B, or C & D, respectively, while running block 3 will use all the stimuli. Note, however, that without additional conditions, objects A & B can never serve as distractors for C & D, or vice versa.
% eye input channels) is available to perform the necessary responses.
% instance, displaying or extinguishing an object, initiating a movement, etc).
Note that MonkeyLogic functions available only in timing scripts are shown here in different colors (except for comments, they will not appear this color in the Matlab editor).
Generally, a timing script begins by redefining TaskObject numbers as readable names, and by defining the temporal intervals that will be used in the experiment (in milliseconds). Then toggleobject and eyejoytrack are interleaved such as to present stimuli at the appropriate times as contingent upon the subject's behavior. Whenever a behavioral error is encountered, a "trialerror" is recorded and any currently visible stimuli are turned off with a call to toggleobject (although these stimuli will be extinguished at some point during the inter-trial-interval, it is good programming practice to turn them off explicitly so that the times of all events are predictable and consistent across trials).
In addition to the code shown here, the eventmarker command, and the eventmarker option of toggleobject, should be employed generously to mark salient events (e.g., a stimulus is turned on or off, the subject acquires fixation, initiates a response, acquires a target, etc.). These event-markers allow one to align neural signals with behavioral events post-hoc with millisecond-level accuracy.


text:
Q: Python-OBD most commands not supported i'm trying to interface a raspberry Pi 3B+ to a Bluetooth ELM327 OBD scanner but i'm having some troubles.
I've connected the raspberry to the OBD Scanner by running the following commands from terminal:
bluetoothctl
power on
default-agent
pair <scanner MAC address>
trust <scanner MAC address>
sudo rfcomm bind rfcomm0 <scanner MAC address>

I've then proceded to run the following python script, which uses Python-OBD library
import obd
connection = obd.OBD(protocol="8")
cmd=obd.commands.RPM
response = connection.query(cmd)
print(response.value)

From this script i got a '010C: Engine RPM' is not supported response although I know from using a smartphone app, that this value is supported from the scanner. Same goes for most of the commands, only a couple of them (i.e. ELM_VERSION, ELM_VOLTAGE) seems to work.
I've already tried a couple of changes on the code, such as specifying the protocol on the connection constructor (I've set the same protocol that's set on the smartphone app), I've tried disabling fast command optimization and also tried to use force=True on query to force unsupported commands to be sent.
I've checked connection.status() which returned "car connected" meaning that it recons there was a successful communication with the ELM327 and the
vehicle ignition is on.
I've then tried to check the connection.supported_commands for hints on what's going on and that was the result
    set([OBDCommand('MIDS_A', 'Supported MIDs [01-20]', '0600', 0, raw_string, ecu=ECU.ALL, fast=False),
 OBDCommand('ELM_VOLTAGE', 'Voltage detected by OBD-II adapter', 'ATRV', 0, raw_string, ecu=1, fast=False),
 OBDCommand('CLEAR_DTC', 'Clear DTCs and Freeze data', '04', 0, raw_string, ecu=ECU.ALL, fast=False),
 OBDCommand('GET_CURRENT_DTC', 'Get DTCs from the current/last driving cycle', '07', 0, raw_string, ecu=ECU.ALL, fast=False),
 OBDCommand('GET_DTC', 'Get DTCs', '03', 0, raw_string, ecu=ECU.ALL, fast=False),
 OBDCommand('ELM_VERSION', 'ELM327 version string', 'ATI', 0, raw_string, ecu=1, fast=False),
 OBDCommand('PIDS_A', 'Supported PIDs [01-20]', '0100', 6, raw_string, ecu=ECU.ENGINE, fast=True)])

I really don't know how to go about troubleshooting this, and i hope you can help me out.
----------EDIT 1 --------
I've enabled the debug logging and here's the result:
 [obd.obd] ======================= python-OBD (v0.7.1) =======================
    [obd.obd] Using scan_serial to select port
    [obd.obd] Available ports: ['/dev/rfcomm0']
    [obd.obd] Attempting to use port: /dev/rfcomm0
    [obd.elm327] Initializing ELM327: PORT=/dev/rfcomm0 BAUD=auto PROTOCOL=8
    [obd.elm327] Response from baud 38400: '\x7f\x7f\r?\r\r>'
    [obd.elm327] Choosing baud 38400
    [obd.elm327] write: 'ATZ\r'
    [obd.elm327] wait: 1 seconds
    [obd.elm327] read: b'ATZ\r\xfc\r\rELM327 v1.5\r\r>'
    [obd.elm327] write: 'ATE0\r'
    [obd.elm327] read: b'ATE0\rOK'
    [obd.elm327] write: 'ATH1\r'
    [obd.elm327] read: b'OK'
    [obd.elm327] write: 'ATL0\r'
    [obd.elm327] read: b'OK'
    [obd.elm327] write: 'AT RV\r'
    [obd.elm327] read: b'14.0V\r\r>'
    [obd.elm327] write: 'ATTP8\r'
    [obd.elm327] read: b'OK\r\r'
    [obd.elm327] write: '0100\r'
    [obd.elm327] read: b'>'
    [obd.elm327] Connected Successfully: PORT=/dev/rfcomm0 BAUD=38400 PROTOCOL=8
    [obd.obd] querying for supported commands
    [obd.obd] Sending command: 0100: Supported PIDs [01-20]
    [obd.elm327] write: '0100\r'
    [obd.elm327] read: b'NO DATA\r\r>'
    [obd.OBDCommand] 0100: Supported PIDs [01-20] did not receive any acceptable messages
    [obd.obd] No valid data for PID listing command: 0100: Supported PIDs [01-20]
    [obd.obd] Sending command: 0600: Supported MIDs [01-20]
    [obd.elm327] write: '0600\r'
    [obd.elm327] read: b'NO DATA\r\r>'
    [obd.obd] finished querying with 7 commands supported
    [obd.obd] ===================================================================
    Car Connected
    [obd.obd] Sending command: 010C: Engine RPM
    [obd.elm327] write: '010C\r'
    [obd.elm327] read: b'NO DATA\r\r>'
    [obd.OBDCommand] 010C: Engine RPM did not receive any acceptable messages

----------EDIT 2 --------
I've tried various combinations of protocols/baud rates with no luck, i ended up using automatic detection with fast mode off and i seems like i get some kind of result from the commands 0100 and 010C but it's not recognised as acceptable from the library...
[obd.obd] ======================= python-OBD (v0.7.1) =======================
[obd.obd] Using scan_serial to select port
[obd.obd] Available ports: ['/dev/rfcomm0']
[obd.obd] Attempting to use port: /dev/rfcomm0
[obd.elm327] Initializing ELM327: PORT=/dev/rfcomm0 BAUD=auto PROTOCOL=auto
[obd.elm327] Response from baud 38400: '?\r\r>'
[obd.elm327] Choosing baud 38400
[obd.elm327] write: 'ATZ\r'
[obd.elm327] wait: 1 seconds
[obd.elm327] read: b'\xfc\r\rELM327 v1.5\r\r>'
[obd.elm327] write: 'ATE0\r'
[obd.elm327] read: b'ATE0\rOK'
[obd.elm327] write: 'ATH1\r'
[obd.elm327] read: b'OK'
[obd.elm327] write: 'ATL0\r'
[obd.elm327] read: b'OK'
[obd.elm327] write: 'AT RV\r'
[obd.elm327] read: b'14.2V\r\r>'
[obd.elm327] write: 'ATSP0\r'
[obd.elm327] read: b'OK'
[obd.elm327] write: '0100\r'
[obd.elm327] read: b'\r\r>'
[obd.elm327] write: 'ATDPN\r'
[obd.elm327] read: b'A0\r\r>'
[obd.elm327] ELM responded with unknown protocol. Trying them one-by-one
[obd.elm327] write: 'ATTP6\r'
[obd.elm327] read: b'OK\r\r'
[obd.elm327] write: '0100\r'
[obd.elm327] read: b'>'
[obd.elm327] Connected Successfully: PORT=/dev/rfcomm0 BAUD=38400 PROTOCOL=6
[obd.obd] querying for supported commands
[obd.obd] Sending command: 0100: Supported PIDs [01-20]
[obd.elm327] write: '0100\r'
[obd.elm327] read: b'7E8 06 41 00 BE 3E B8 11 \r\r>'
[obd.OBDCommand] 0100: Supported PIDs [01-20] did not receive any acceptable messages
[obd.obd] No valid data for PID listing command: 0100: Supported PIDs [01-20]
[obd.obd] Sending command: 0600: Supported MIDs [01-20]
[obd.elm327] write: '0600\r'
[obd.elm327] read: b'7E8 06 46 00 C0 00 00 01 \r\r>'
[obd.obd] Sending command: 0620: Supported MIDs [21-40]
[obd.elm327] write: '0620\r'
[obd.elm327] read: b'7E8 06 46 20 80 00 00 00 \r\r>'
[obd.obd] finished querying with 11 commands supported
[obd.obd] ===================================================================
Car Connected
[obd.obd] Sending command: 010C: Engine RPM
[obd.elm327] write: '010C\r'
[obd.elm327] read: b'7E8 04 41 0C 10 10 \r\r>'
[obd.OBDCommand] 010C: Engine RPM did not receive any acceptable messages

A: Your first example is using a strange init sequence, usually it is recommended to use auto negotiation (SPA), then negotiate by sending any PID (0100) and finally print the protocol to find out which protocol your car and adapter negotiated (DPN).
Now I don't know the library you're using, however it looks like this library does either not understand the protocol format your adapter has negotiated with the car or it doesn't know which protocol has been selected (hence tries to parse a slightly different format). The actual answers you receive in the second example look OK as far as I can see, so you might want to check the init sequence or whether you need to use the library differently.

A: try the below connection string:
connection = obd.OBD(protocol="7", baudrate="9600", fast=False)

This worked for me